[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] [PATCH 03/10] Pass PXENVBD_SRBEXT, not PSCSI_REQUEST_BLOCK
> -----Original Message----- > From: win-pv-devel [mailto:win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx] On > Behalf Of owen.smith@xxxxxxxxxx > Sent: 23 June 2017 13:49 > To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Owen Smith <owen.smith@xxxxxxxxxx> > Subject: [win-pv-devel] [PATCH 03/10] Pass PXENVBD_SRBEXT, not > PSCSI_REQUEST_BLOCK > > From: Owen Smith <owen.smith@xxxxxxxxxx> Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > > Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> > --- > src/xenvbd/adapter.c | 16 ++++++++++------ > src/xenvbd/adapter.h | 7 ++++--- > src/xenvbd/target.c | 15 ++++++++------- > src/xenvbd/target.h | 5 ++--- > 4 files changed, 24 insertions(+), 19 deletions(-) > > diff --git a/src/xenvbd/adapter.c b/src/xenvbd/adapter.c > index ec6711a..bc93037 100644 > --- a/src/xenvbd/adapter.c > +++ b/src/xenvbd/adapter.c > @@ -1396,10 +1396,12 @@ AdapterTeardown( > > VOID > AdapterCompleteSrb( > - IN PXENVBD_ADAPTER Adapter, > - IN PSCSI_REQUEST_BLOCK Srb > + IN PXENVBD_ADAPTER Adapter, > + IN PXENVBD_SRBEXT SrbExt > ) > { > + PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb; > + > ASSERT3U(Srb->SrbStatus, !=, SRB_STATUS_PENDING); > > ++Adapter->Completed; > @@ -1717,6 +1719,7 @@ AdapterHwBuildIo( > ) > { > PXENVBD_ADAPTER Adapter = DevExt; > + PXENVBD_SRBEXT SrbExt = Srb->SrbExtension; > > InitSrbExt(Srb); > > @@ -1746,7 +1749,7 @@ AdapterHwBuildIo( > break; > } > > - AdapterCompleteSrb(Adapter, Srb); > + AdapterCompleteSrb(Adapter, SrbExt); > return FALSE; > } > > @@ -1759,6 +1762,7 @@ AdapterHwStartIo( > ) > { > PXENVBD_ADAPTER Adapter = DevExt; > + PXENVBD_SRBEXT SrbExt = Srb->SrbExtension; > PXENVBD_TARGET Target; > > Target = AdapterGetTarget(Adapter, Srb->TargetId); > @@ -1766,14 +1770,14 @@ AdapterHwStartIo( > goto fail1; > > ++Adapter->StartIo; > - if (TargetStartIo(Target, Srb)) > - AdapterCompleteSrb(Adapter, Srb); > + if (TargetStartIo(Target, SrbExt)) > + AdapterCompleteSrb(Adapter, SrbExt); > > return TRUE; > > fail1: > Srb->SrbStatus = SRB_STATUS_INVALID_TARGET_ID; > - AdapterCompleteSrb(Adapter, Srb); > + AdapterCompleteSrb(Adapter, SrbExt); > return TRUE; > } > > diff --git a/src/xenvbd/adapter.h b/src/xenvbd/adapter.h > index b8706fd..a398b75 100644 > --- a/src/xenvbd/adapter.h > +++ b/src/xenvbd/adapter.h > @@ -36,13 +36,14 @@ > > typedef struct _XENVBD_ADAPTER XENVBD_ADAPTER, > *PXENVBD_ADAPTER; > > -#include <storport.h> > #include <store_interface.h> > #include <evtchn_interface.h> > #include <gnttab_interface.h> > #include <debug_interface.h> > #include <suspend_interface.h> > > +#include "srbext.h" > + > #define ADAPTER_GET_INTERFACE(_name, _type) \ > extern VOID \ > AdapterGet ## _name ## Interface( \ > @@ -66,8 +67,8 @@ AdapterIsTargetEmulated( > > extern VOID > AdapterCompleteSrb( > - IN PXENVBD_ADAPTER Adapter, > - IN PSCSI_REQUEST_BLOCK Srb > + IN PXENVBD_ADAPTER Adapter, > + IN PXENVBD_SRBEXT SrbExt > ); > > extern VOID > diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c > index 5bab440..1f45afb 100644 > --- a/src/xenvbd/target.c > +++ b/src/xenvbd/target.c > @@ -1297,7 +1297,7 @@ __TargetPauseDataPath( > Verbose("Target[%d] : FreshSrb 0x%p -> SCSI_ABORTED\n", > TargetGetTargetId(Target), SrbExt->Srb); > SrbExt->Srb->SrbStatus = SRB_STATUS_ABORTED; > SrbExt->Srb->ScsiStatus = 0x40; // SCSI_ABORTED; > - AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt->Srb); > + AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt); > } > > // Fail PreparedReqs > @@ -1317,7 +1317,7 @@ __TargetPauseDataPath( > > if (InterlockedDecrement(&SrbExt->Count) == 0) { > SrbExt->Srb->ScsiStatus = 0x40; // SCSI_ABORTED > - AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt->Srb); > + AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt); > } > } > } > @@ -1429,7 +1429,7 @@ TargetCompleteShutdown( > break; > SrbExt = CONTAINING_RECORD(Entry, XENVBD_SRBEXT, Entry); > SrbExt->Srb->SrbStatus = SRB_STATUS_SUCCESS; > - AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt->Srb); > + AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt); > } > } > > @@ -1526,7 +1526,7 @@ TargetCompleteResponse( > Srb->ScsiStatus = 0x40; // SCSI_ABORTED > } > > - AdapterCompleteSrb(TargetGetAdapter(Target), Srb); > + AdapterCompleteSrb(TargetGetAdapter(Target), SrbExt); > } > } > > @@ -2129,13 +2129,14 @@ __ValidateSrbForTarget( > return TRUE; > } > > -__checkReturn > BOOLEAN > TargetStartIo( > - __in PXENVBD_TARGET Target, > - __in PSCSI_REQUEST_BLOCK Srb > + IN PXENVBD_TARGET Target, > + IN PXENVBD_SRBEXT SrbExt > ) > { > + PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb; > + > if (!__ValidateSrbForTarget(Target, Srb)) > return TRUE; > > diff --git a/src/xenvbd/target.h b/src/xenvbd/target.h > index 9455d56..67b6319 100644 > --- a/src/xenvbd/target.h > +++ b/src/xenvbd/target.h > @@ -162,11 +162,10 @@ TargetReset( > __in PXENVBD_TARGET Target > ); > > -__checkReturn > extern BOOLEAN > TargetStartIo( > - __in PXENVBD_TARGET Target, > - __in PSCSI_REQUEST_BLOCK Srb > + IN PXENVBD_TARGET Target, > + IN PXENVBD_SRBEXT SrbExt > ); > > extern VOID > -- > 2.8.3 > > > _______________________________________________ > win-pv-devel mailing list > win-pv-devel@xxxxxxxxxxxxxxxxxxxx > https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |