win-pvdrivers

changeset 679:bccfedce08ea

remove xenstore watches on hibernation too
without this, the watches keep on stacking and might exceed the limit, preventing addition of any more watches

this can also cause 0x10d BSOD for reasons yet unclear
it probably has to do with xenstore ring-buffer getting corrupt and discarding responses
wdf power opretaion times out because XenPci_UpdateBackendState() can't get a response
author Amir Szekely <amir@neocleus.com>
date Sat Sep 26 01:19:29 2009 +0300 (2009-09-26)
parents e31a1e3d6e07
children 78bd7b215672
files xenpci/xenpci_pdo.c
line diff
     1.1 --- a/xenpci/xenpci_pdo.c	Thu Oct 08 16:25:39 2009 +1100
     1.2 +++ b/xenpci/xenpci_pdo.c	Sat Sep 26 01:19:29 2009 +0300
     1.3 @@ -2307,10 +2307,12 @@ XenPciPdo_EvtDeviceD0Exit(WDFDEVICE devi
     1.4    else
     1.5    {
     1.6      status = XenPci_XenShutdownDevice(device);
     1.7 -    /* Remove watch on backend state */
     1.8 -    RtlStringCbPrintfA(path, ARRAY_SIZE(path), "%s/state", xppdd->backend_path);
     1.9 -    XenBus_RemWatch(xpdd, XBT_NIL, path, XenPci_BackendStateHandler, device);
    1.10    }
    1.11 +  
    1.12 +  /* Remove watch on backend state */
    1.13 +  RtlStringCbPrintfA(path, ARRAY_SIZE(path), "%s/state", xppdd->backend_path);
    1.14 +  XenBus_RemWatch(xpdd, XBT_NIL, path, XenPci_BackendStateHandler, device);
    1.15 +  
    1.16    FUNCTION_EXIT();
    1.17    
    1.18    return status;