mirror of https://github.com/ipxe/ipxe.git
[efi] Veto the Itautec Ip4ConfigDxe driver
The Ip4ConfigDxe driver bug that was observed on Dell systems in
commit 64b4452
("[efi] Blacklist the Dell Ip4ConfigDxe driver") has
also been observed on systems with a manufacturer name of "Itautec
S.A.". The symptoms of the bug are identical: an attempt to call
DisconnectController() on the LOM device handle will lock up the
system.
Fix by extending the veto to cover the Ip4ConfigDxe driver for this
manufacturer.
Debugged-by: Celso Viana <celso.vianna@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/388/head
parent
3dd1989ac0
commit
3c040ad387
|
@ -362,7 +362,7 @@ static int efi_veto_driver ( EFI_HANDLE driver ) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Veto Dell Ip4ConfigDxe driver
|
||||
* Veto Ip4ConfigDxe driver on some platforms
|
||||
*
|
||||
* @v binding Driver binding protocol
|
||||
* @v loaded Loaded image protocol
|
||||
|
@ -372,19 +372,21 @@ static int efi_veto_driver ( EFI_HANDLE driver ) {
|
|||
* @ret vetoed Driver is to be vetoed
|
||||
*/
|
||||
static int
|
||||
efi_veto_dell_ip4config ( EFI_DRIVER_BINDING_PROTOCOL *binding __unused,
|
||||
efi_veto_ip4config ( EFI_DRIVER_BINDING_PROTOCOL *binding __unused,
|
||||
EFI_LOADED_IMAGE_PROTOCOL *loaded __unused,
|
||||
EFI_COMPONENT_NAME_PROTOCOL *wtf __unused,
|
||||
const char *manufacturer, const CHAR16 *name ) {
|
||||
static const CHAR16 ip4cfg[] = L"IP4 CONFIG Network Service Driver";
|
||||
static const char *dell = "Dell Inc.";
|
||||
static const char *itautec = "Itautec S.A.";
|
||||
|
||||
/* Check manufacturer and driver name */
|
||||
if ( ! manufacturer )
|
||||
return 0;
|
||||
if ( ! name )
|
||||
return 0;
|
||||
if ( strcmp ( manufacturer, dell ) != 0 )
|
||||
if ( ( strcmp ( manufacturer, dell ) != 0 ) &&
|
||||
( strcmp ( manufacturer, itautec ) != 0 ) )
|
||||
return 0;
|
||||
if ( memcmp ( name, ip4cfg, sizeof ( ip4cfg ) ) != 0 )
|
||||
return 0;
|
||||
|
@ -436,8 +438,8 @@ efi_veto_hp_xhci ( EFI_DRIVER_BINDING_PROTOCOL *binding __unused,
|
|||
/** Driver vetoes */
|
||||
static struct efi_veto efi_vetoes[] = {
|
||||
{
|
||||
.name = "Dell Ip4Config",
|
||||
.veto = efi_veto_dell_ip4config,
|
||||
.name = "Ip4Config",
|
||||
.veto = efi_veto_ip4config,
|
||||
},
|
||||
{
|
||||
.name = "HP Xhci",
|
||||
|
|
Loading…
Reference in New Issue