|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 1/8] SRB_FUNCTION_RESET_DEVICE should succeed... otherwise the entire controller is reset.
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xenvbd/fdo.c | 2 ++
src/xenvbd/pdo.c | 25 ++++++++++++++++++++-----
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c
index f6b47f2..82b7fb6 100644
--- a/src/xenvbd/fdo.c
+++ b/src/xenvbd/fdo.c
@@ -1449,6 +1449,7 @@ FdoResetBus(
{
ULONG TargetId;
+ Verbose("====>\n");
for (TargetId = 0; TargetId < XENVBD_MAX_TARGETS; ++TargetId) {
PXENVBD_PDO Pdo = __FdoGetPdo(Fdo, TargetId);
if (Pdo) {
@@ -1456,6 +1457,7 @@ FdoResetBus(
PdoDereference(Pdo);
}
}
+ Verbose("<====\n");
return TRUE;
}
diff --git a/src/xenvbd/pdo.c b/src/xenvbd/pdo.c
index 198c4d3..de8ba02 100644
--- a/src/xenvbd/pdo.c
+++ b/src/xenvbd/pdo.c
@@ -2242,7 +2242,7 @@ __PdoExecuteScsi(
return TRUE;
}
-static FORCEINLINE VOID
+static FORCEINLINE BOOLEAN
__PdoQueueShutdown(
__in PXENVBD_PDO Pdo,
__in PSCSI_REQUEST_BLOCK Srb
@@ -2253,6 +2253,23 @@ __PdoQueueShutdown(
QueueAppend(&Pdo->ShutdownSrbs, &SrbExt->Entry);
NotifierKick(Notifier);
+
+ return FALSE;
+}
+
+static FORCEINLINE BOOLEAN
+__PdoReset(
+ __in PXENVBD_PDO Pdo,
+ __in PSCSI_REQUEST_BLOCK Srb
+ )
+{
+ Verbose("Target[%u] ====>\n", PdoGetTargetId(Pdo));
+
+ PdoReset(Pdo);
+ Srb->SrbStatus = SRB_STATUS_SUCCESS;
+
+ Verbose("Target[%u] <====\n", PdoGetTargetId(Pdo));
+ return TRUE;
}
static FORCEINLINE VOID
@@ -2378,13 +2395,11 @@ PdoStartIo(
return __PdoExecuteScsi(Pdo, Srb);
case SRB_FUNCTION_RESET_DEVICE:
- PdoReset(Pdo);
- return TRUE;
+ return __PdoReset(Pdo, Srb);
case SRB_FUNCTION_FLUSH:
case SRB_FUNCTION_SHUTDOWN:
- __PdoQueueShutdown(Pdo, Srb);
- return FALSE;
+ return __PdoQueueShutdown(Pdo, Srb);
default:
return TRUE;
--
1.9.4.msysgit.1
_______________________________________________
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 |