[efi] Inhibit our driver Start() method during disconnection attempts
authorMichael Brown <mcb30@ipxe.org>
Fri, 22 Sep 2017 13:02:40 +0000 (14:02 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 22 Sep 2017 17:39:04 +0000 (18:39 +0100)
commit74d90b33f8490adcee2026ece18d8411d93b6a39
tree8a2fb502c0e1f24328304a7ebe305b98132de147
parent7428ab7258e03ddef79ba774432b7b8c11cc2730
[efi] Inhibit our driver Start() method during disconnection attempts

Some HP BIOSes (observed with a Z840) seem to attempt to connect our
drivers in the middle of our call to DisconnectController().  The
precise chain of events is unclear, but the symptom is that we see
several calls to our Supported() and Start() methods, followed by a
system lock-up.

Work around this dubious BIOS behaviour by explicitly failing calls to
our Start() method while we are in the middle of attempting to
disconnect drivers.

Reported-by: Jordan Wright <jordan.m.wright@disney.com>
Debugged-by: Adrian Lucrèce Céleste <adrianlucrececeleste@airmail.cc>
Debugged-by: Christian Nilsson <nikize@gmail.com>
Tested-by: Jordan Wright <jordan.m.wright@disney.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/interface/efi/efi_driver.c