From: Greg V Date: Mon, 23 Oct 2017 20:20:40 +0000 (+0300) Subject: loader: use drmGetDeviceNameFromFd2 from libdrm X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=db8519a369261cdedda50852facc45616d4eba28;p=mesa.git loader: use drmGetDeviceNameFromFd2 from libdrm Reduce code duplication and automatically benefit from OS-specific fixes to libdrm (e.g. in FreeBSD ports). API was introduced with 2.4.74 and we already require 2.4.75 globally. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103283 Reviewed-by: Eric Engestrom Reviewed-by: Emil Velikov --- diff --git a/src/loader/loader.c b/src/loader/loader.c index 182ba90a0da..f7f85e37c20 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -244,29 +244,6 @@ int loader_get_user_preferred_fd(int default_fd, bool *different_device) } #endif -#if defined(HAVE_LIBDRM) -static int -dev_node_from_fd(int fd, unsigned int *maj, unsigned int *min) -{ - struct stat buf; - - if (fstat(fd, &buf) < 0) { - log_(_LOADER_WARNING, "MESA-LOADER: failed to stat fd %d\n", fd); - return -1; - } - - if (!S_ISCHR(buf.st_mode)) { - log_(_LOADER_WARNING, "MESA-LOADER: fd %d not a character device\n", fd); - return -1; - } - - *maj = major(buf.st_rdev); - *min = minor(buf.st_rdev); - - return 0; -} -#endif - #if defined(HAVE_LIBDRM) static int @@ -312,18 +289,7 @@ loader_get_pci_id_for_fd(int fd, int *vendor_id, int *chip_id) static char * drm_get_device_name_for_fd(int fd) { - unsigned int maj, min; - char buf[0x40]; - int n; - - if (dev_node_from_fd(fd, &maj, &min) < 0) - return NULL; - - n = snprintf(buf, sizeof(buf), DRM_DEV_NAME, DRM_DIR_NAME, min); - if (n == -1 || n >= sizeof(buf)) - return NULL; - - return strdup(buf); + return drmGetDeviceNameFromFd2(fd); } #endif