]> xenbits.xensource.com Git - people/pauldu/xenbus.git/commit
Don't veto everything on InitSafeModeMode
authorPaul Durrant <paul.durrant@citrix.com>
Tue, 1 Mar 2016 14:04:00 +0000 (14:04 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Tue, 1 Mar 2016 14:12:44 +0000 (14:12 +0000)
commit98f2d40bbbb5619e5f6ddee6c24386121398645c
tree219af4c1ff81c0eeccf6f75b0a2c32d53a4f9565
parent7cee9e93749727f9e493e15757c1495258d3a41b
Don't veto everything on InitSafeModeMode

In safe mode we want to fall back to using emulated devices (which have
in-box drivers) just in case there is a problem using PV devices. However,
the current scheme of bailing very early in DriverEntry() hence not
supplying an AddDevice() entry point, hence not creating any FDOs and hence
no PDOs is problematic. This is because, when no child FDOs are created,
un-installing a child driver does not invoke the child driver co-installer
and thus cleanup, such as removing unplug registry keys, does not occur.
This then leads to a potential 0x7B BSOD on reboot if XENVBD was removed in
safe mode.

This patch gets rid of the global veto and instead simply vetoes unplug of
emulated devices. This should be sufficient for other PV drivers to
deactivate and let Windows use the emulated devices, but won't get in the
way of normal driver un-install behaviour.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
src/xen/driver.c
src/xenbus/driver.c
src/xenfilt/driver.c