From baf9327fa1b6cd1a75c5080a86f8fd12555e3d75 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Mon, 27 Jan 2020 17:21:03 -0800 Subject: [PATCH] loader: Check if the kernel driver is i915 before loading iris To prevent it from trying to load on say gma500 hardware. Reviewed-by: Eric Engestrom Tested-by: Marge Bot Part-of: --- src/loader/loader.c | 7 +++++++ src/loader/pci_id_driver_map.h | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/loader/loader.c b/src/loader/loader.c index 668e6d5184b..a2fe0a241a2 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -114,6 +114,13 @@ 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); + return kernel_driver && strcmp(kernel_driver, "i915") == 0; +} + #if defined(HAVE_LIBDRM) int loader_open_render_node(const char *name) diff --git a/src/loader/pci_id_driver_map.h b/src/loader/pci_id_driver_map.h index 9b4618e1601..1dc07be390c 100644 --- a/src/loader/pci_id_driver_map.h +++ b/src/loader/pci_id_driver_map.h @@ -57,6 +57,7 @@ static const int vmwgfx_chip_ids[] = { }; bool is_nouveau_vieux(int fd); +bool is_kernel_i915(int fd); static const struct { int vendor_id; @@ -67,7 +68,7 @@ static const struct { } driver_map[] = { { 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) }, { 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) }, - { 0x8086, "iris", NULL, -1 }, + { 0x8086, "iris", NULL, -1, is_kernel_i915 }, { 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) }, { 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) }, { 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) }, -- 2.30.2