X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Floader%2Floader.c;h=a6ad2ee075bb6d1a51b073e9e252780934009baf;hb=fa5e800e05ab227786862383d3243e06c06d36d7;hp=c828105c95121add61ee269b740d96375aaac838;hpb=b9157ea415d9734e67678d2d5a26798d6fa03a02;p=mesa.git diff --git a/src/loader/loader.c b/src/loader/loader.c index c828105c951..a6ad2ee075b 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -61,6 +61,11 @@ #define __IS_LOADER #include "pci_id_driver_map.h" +/* For systems like Hurd */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + static void default_logger(int level, const char *fmt, ...) { if (level <= _LOADER_WARNING) { @@ -86,6 +91,10 @@ loader_open_device(const char *device_name) if (fd != -1) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); } + if (fd == -1 && errno == EACCES) { + log_(_LOADER_WARNING, "failed to open %s: %s\n", + device_name, strerror(errno)); + } return fd; } @@ -109,6 +118,16 @@ static char *loader_get_kernel_driver_name(int fd) #endif } +bool +is_kernel_i915(int fd) +{ + char *kernel_driver = loader_get_kernel_driver_name(fd); + bool is_i915 = kernel_driver && strcmp(kernel_driver, "i915") == 0; + + free(kernel_driver); + return is_i915; +} + #if defined(HAVE_LIBDRM) int loader_open_render_node(const char *name) @@ -486,15 +505,6 @@ loader_get_driver_for_fd(int fd) } } - driver = loader_get_kernel_driver_name(fd); - bool is_amdgpu = driver && strcmp(driver, "amdgpu") == 0; - free(driver); - - if (is_amdgpu) - driver = strdup("radeonsi"); - else - driver = NULL; - out: log_(driver ? _LOADER_DEBUG : _LOADER_WARNING, "pci id for fd %d: %04x:%04x, driver %s\n",