From 56b2f66dd2bcc5e6248d3652be051f20e604b7cc Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 8 Jul 2014 01:02:35 +0100 Subject: [PATCH] [efi] Attempt to start only drivers claiming support for a device Signed-off-by: Michael Brown --- src/interface/efi/efi_driver.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/interface/efi/efi_driver.c b/src/interface/efi/efi_driver.c index 8d0c9354..7d7d2059 100644 --- a/src/interface/efi/efi_driver.c +++ b/src/interface/efi/efi_driver.c @@ -269,6 +269,13 @@ efi_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused, /* Try to start this device */ for_each_table_entry ( efidrv, EFI_DRIVERS ) { + if ( ( rc = efidrv->supported ( device ) ) != 0 ) { + DBGC ( device, "EFIDEV %p %s is not supported by " + "driver \"%s\": %s\n", + device, efi_devpath_text ( efidev->path ), + efidrv->name, strerror ( rc ) ); + continue; + } if ( ( rc = efidrv->start ( efidev ) ) == 0 ) { efidev->driver = efidrv; DBGC ( device, "EFIDRV %p %s using driver \"%s\"\n",