[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] [PATCH 02/10] Move StorPort*() calls to adapter.c
> -----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 02/10] Move StorPort*() calls to adapter.c > > From: Owen Smith <owen.smith@xxxxxxxxxx> > > Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > --- > src/xenvbd/adapter.c | 38 ++++++++++++++++++++++++++++++++------ > src/xenvbd/adapter.h | 11 +++++++++++ > src/xenvbd/target.c | 19 ++++++------------- > 3 files changed, 49 insertions(+), 19 deletions(-) > > diff --git a/src/xenvbd/adapter.c b/src/xenvbd/adapter.c > index 2e85f9f..ec6711a 100644 > --- a/src/xenvbd/adapter.c > +++ b/src/xenvbd/adapter.c > @@ -58,7 +58,8 @@ > #include "debug.h" > #include "assert.h" > > -#define MAXNAMELEN 128 > +#define XENVBD_MAX_QUEUE_DEPTH 254 > +#define MAXNAMELEN 128 > #define ADAPTER_POOL_TAG 'adAX' > > struct _XENVBD_ADAPTER { > @@ -498,9 +499,7 @@ __AdapterEnumerate( > } > > if (NeedInvalidate) > - StorPortNotification(BusChangeDetected, > - Adapter, > - NULL); > + AdapterTargetListChanged(Adapter); > if (NeedReboot) > DriverRequestReboot(); > } > @@ -1408,6 +1407,31 @@ AdapterCompleteSrb( > StorPortNotification(RequestComplete, Adapter, Srb); > } > > +VOID > +AdapterTargetListChanged( > + IN PXENVBD_ADAPTER Adapter > + ) > +{ > + StorPortNotification(BusChangeDetected, > + Adapter, > + NULL); > +} > + > +VOID > +AdapterSetDeviceQueueDepth( > + IN PXENVBD_ADAPTER Adapter, > + IN ULONG TargetId > + ) > +{ > + if (!StorPortSetDeviceQueueDepth(Adapter, > + 0, > + (UCHAR)TargetId, > + 0, > + XENVBD_MAX_QUEUE_DEPTH)) > + Verbose("Target[%d] : Failed to set queue depth\n", > + TargetId); > +} > + > static VOID > AdapterUnplugRequest( > IN PXENVBD_ADAPTER Adapter, > @@ -1713,15 +1737,16 @@ AdapterHwBuildIo( > Srb->SrbStatus = SRB_STATUS_ABORT_FAILED; > break; > case SRB_FUNCTION_RESET_BUS: > - Srb->SrbStatus = SRB_STATUS_SUCCESS; > AdapterHwResetBus(Adapter, Srb->PathId); > + Srb->SrbStatus = SRB_STATUS_SUCCESS; > break; > > default: > + Srb->SrbStatus = SRB_STATUS_INVALID_REQUEST; > break; > } > > - StorPortNotification(RequestComplete, Adapter, Srb); > + AdapterCompleteSrb(Adapter, Srb); > return FALSE; > } > > @@ -1747,6 +1772,7 @@ AdapterHwStartIo( > return TRUE; > > fail1: > + Srb->SrbStatus = SRB_STATUS_INVALID_TARGET_ID; > AdapterCompleteSrb(Adapter, Srb); > return TRUE; > } > diff --git a/src/xenvbd/adapter.h b/src/xenvbd/adapter.h > index 5dd2e62..b8706fd 100644 > --- a/src/xenvbd/adapter.h > +++ b/src/xenvbd/adapter.h > @@ -70,6 +70,17 @@ AdapterCompleteSrb( > IN PSCSI_REQUEST_BLOCK Srb > ); > > +extern VOID > +AdapterTargetListChanged( > + IN PXENVBD_ADAPTER Adapter > + ); > + > +extern VOID > +AdapterSetDeviceQueueDepth( > + IN PXENVBD_ADAPTER Adapter, > + IN ULONG TargetId > + ); > + > extern NTSTATUS > AdapterDispatchPnp( > IN PXENVBD_ADAPTER Adapter, > diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c > index c5dffa9..5bab440 100644 > --- a/src/xenvbd/target.c > +++ b/src/xenvbd/target.c > @@ -49,8 +49,6 @@ > #include <suspend_interface.h> > #include <stdlib.h> > > -#define XENVBD_MAX_QUEUE_DEPTH (254) > - > typedef struct _XENVBD_SG_LIST { > // SGList from SRB > PSTOR_SCATTER_GATHER_LIST SGList; > @@ -2021,13 +2019,8 @@ __TargetExecuteScsi( > break; > > case SCSIOP_INQUIRY: > - if (!StorPortSetDeviceQueueDepth(TargetGetAdapter(Target), > - 0, > - (UCHAR)TargetGetTargetId(Target), > - 0, > - XENVBD_MAX_QUEUE_DEPTH)) > - Verbose("Target[%d] : Failed to set queue depth\n", > - TargetGetTargetId(Target)); > + AdapterSetDeviceQueueDepth(TargetGetAdapter(Target), > + TargetGetTargetId(Target)); > PdoInquiry(TargetGetTargetId(Target), FrontendGetInquiry(Target- > >Frontend), Srb); > break; > case SCSIOP_MODE_SENSE: > @@ -2305,13 +2298,13 @@ __TargetRemoveDevice( > case SurpriseRemovePending: > TargetSetMissing(Target, "Surprise Remove"); > TargetSetDevicePnpState(Target, Deleted); > - StorPortNotification(BusChangeDetected, TargetGetAdapter(Target), > 0); > + AdapterTargetListChanged(TargetGetAdapter(Target)); > break; > > default: > TargetSetMissing(Target, "Removed"); > TargetSetDevicePnpState(Target, Deleted); > - StorPortNotification(BusChangeDetected, TargetGetAdapter(Target), > 0); > + AdapterTargetListChanged(TargetGetAdapter(Target)); > break; > } > } > @@ -2323,7 +2316,7 @@ __TargetEject( > { > TargetSetMissing(Target, "Ejected"); > TargetSetDevicePnpState(Target, Deleted); > - StorPortNotification(BusChangeDetected, TargetGetAdapter(Target), 0); > + AdapterTargetListChanged(TargetGetAdapter(Target)); > } > > __checkReturn > @@ -2417,7 +2410,7 @@ TargetIssueDeviceEject( > IoRequestDeviceEject(Target->DeviceObject); > } else { > Verbose("Target[%d] : Triggering BusChangeDetected to detect > device\n", TargetGetTargetId(Target)); > - StorPortNotification(BusChangeDetected, TargetGetAdapter(Target), > 0); > + AdapterTargetListChanged(TargetGetAdapter(Target)); > } > } > > -- > 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 |