|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Protect BackendPath from race using StateLock
The BackendPath can change as part of PDO state transitions, leading
to a race with the frontend thread. Since the frontend state lock is
locked through state transitions, taking the lock is sufficient to
avoid the race
Signed-off-by: Ben Chalmers <Ben.Chalmers@xxxxxxxxxx>
---
src/xenvbd/frontend.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
index 25b268d..f01b142 100644
--- a/src/xenvbd/frontend.c
+++ b/src/xenvbd/frontend.c
@@ -1579,12 +1579,15 @@ FrontendBackendPathChanged(
__in PXENVBD_FRONTEND Frontend
)
{
+ KIRQL Irql;
+ KeAcquireSpinLock(&Frontend->StateLock, &Irql);
// Only attempt this if Active, Active is set/cleared on D3->D0/D0->D3
if (Frontend->Active) {
// Note: Nothing may have changed with this target, this could be
caused by another target changing
__ReadDiskInfo(Frontend);
__CheckBackendForEject(Frontend);
}
+ KeReleaseSpinLock(&Frontend->StateLock, Irql);
}
__checkReturn
--
1.9.5.msysgit.0
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |