5858 } \
5959 }
6060
61+ static ULONG GetSrbQueueNumber (IN PVOID DeviceExtension , IN PSRB_TYPE Srb )
62+ {
63+ PADAPTER_EXTENSION adaptExt = (PADAPTER_EXTENSION )DeviceExtension ;
64+ ULONG QueueNumber = 0 ;
65+ ULONG MessageId = 1 ;
66+
67+ if (adaptExt -> num_queues > 1 )
68+ {
69+ STARTIO_PERFORMANCE_PARAMETERS param ;
70+ ULONG status = STOR_STATUS_SUCCESS ;
71+
72+ param .Size = sizeof (STARTIO_PERFORMANCE_PARAMETERS );
73+ status = StorPortGetStartIoPerfParams (DeviceExtension , (PSCSI_REQUEST_BLOCK )Srb , & param );
74+ if (status == STOR_STATUS_SUCCESS )
75+ {
76+ RhelDbgPrint (TRACE_LEVEL_INFORMATION ,
77+ " srb %p, QueueNumber %lu, MessageNumber %lu, ChannelNumber %lu.\n" ,
78+ Srb ,
79+ QueueNumber ,
80+ param .MessageNumber ,
81+ param .ChannelNumber );
82+ MESSAGENUMBER_TO_QUEUE ();
83+ }
84+ else
85+ {
86+ RhelDbgPrint (TRACE_LEVEL_ERROR , " StorPortGetStartIoPerfParams failed. srb %p status 0x%x.\n" , Srb , status );
87+ }
88+ }
89+
90+ return QueueNumber ;
91+ }
92+
6193BOOLEAN
6294RhelDoFlush (PVOID DeviceExtension , PSRB_TYPE Srb , BOOLEAN resend , BOOLEAN bIsr )
6395{
@@ -73,7 +105,6 @@ RhelDoFlush(PVOID DeviceExtension, PSRB_TYPE Srb, BOOLEAN resend, BOOLEAN bIsr)
73105 BOOLEAN result = FALSE;
74106 bool notify = FALSE;
75107 STOR_LOCK_HANDLE LockHandle = {0 };
76- ULONG status = STOR_STATUS_SUCCESS ;
77108 struct virtqueue * vq = NULL ;
78109 PREQUEST_LIST element ;
79110
@@ -84,25 +115,10 @@ RhelDoFlush(PVOID DeviceExtension, PSRB_TYPE Srb, BOOLEAN resend, BOOLEAN bIsr)
84115 MessageId = srbExt -> MessageID ;
85116 QueueNumber = MessageId - 1 ;
86117 }
87- else if ( adaptExt -> num_queues > 1 )
118+ else
88119 {
89- STARTIO_PERFORMANCE_PARAMETERS param ;
90- param .Size = sizeof (STARTIO_PERFORMANCE_PARAMETERS );
91- status = StorPortGetStartIoPerfParams (DeviceExtension , (PSCSI_REQUEST_BLOCK )Srb , & param );
92- if (status == STOR_STATUS_SUCCESS )
93- {
94- RhelDbgPrint (TRACE_LEVEL_INFORMATION ,
95- " srb %p, QueueNumber %lu, MessageNumber %lu, ChannelNumber %lu.\n" ,
96- Srb ,
97- QueueNumber ,
98- param .MessageNumber ,
99- param .ChannelNumber );
100- MESSAGENUMBER_TO_QUEUE ();
101- }
102- else
103- {
104- RhelDbgPrint (TRACE_LEVEL_ERROR , " StorPortGetStartIoPerfParams failed. srb %p status 0x%x.\n" , Srb , status );
105- }
120+ QueueNumber = GetSrbQueueNumber (DeviceExtension , Srb );
121+ MessageId = QueueNumber + 1 ;
106122 }
107123
108124 if (adaptExt -> reset_in_progress )
@@ -194,32 +210,13 @@ RhelDoReadWrite(PVOID DeviceExtension, PSRB_TYPE Srb)
194210 BOOLEAN result = FALSE;
195211 bool notify = FALSE;
196212 STOR_LOCK_HANDLE LockHandle = {0 };
197- ULONG status = STOR_STATUS_SUCCESS ;
198213 struct virtqueue * vq = NULL ;
199214 PREQUEST_LIST element ;
200215
201216 SET_VA_PA ();
202217
203- if (adaptExt -> num_queues > 1 )
204- {
205- STARTIO_PERFORMANCE_PARAMETERS param ;
206- param .Size = sizeof (STARTIO_PERFORMANCE_PARAMETERS );
207- status = StorPortGetStartIoPerfParams (DeviceExtension , (PSCSI_REQUEST_BLOCK )Srb , & param );
208- if (status == STOR_STATUS_SUCCESS )
209- {
210- RhelDbgPrint (TRACE_LEVEL_INFORMATION ,
211- " srb %p, QueueNumber %lu, MessageNumber %lu, ChannelNumber %lu.\n" ,
212- Srb ,
213- QueueNumber ,
214- param .MessageNumber ,
215- param .ChannelNumber );
216- MESSAGENUMBER_TO_QUEUE ();
217- }
218- else
219- {
220- RhelDbgPrint (TRACE_LEVEL_ERROR , " StorPortGetStartIoPerfParams failed srb %p status 0x%x.\n" , Srb , status );
221- }
222- }
218+ QueueNumber = GetSrbQueueNumber (DeviceExtension , Srb );
219+ MessageId = QueueNumber + 1 ;
223220
224221 if (adaptExt -> reset_in_progress )
225222 {
@@ -306,7 +303,6 @@ RhelDoUnMap(IN PVOID DeviceExtension, IN PSRB_TYPE Srb)
306303 BOOLEAN result = FALSE;
307304 BOOLEAN notify = FALSE;
308305 STOR_LOCK_HANDLE LockHandle = {0 };
309- ULONG status = STOR_STATUS_SUCCESS ;
310306 struct virtqueue * vq = NULL ;
311307
312308 SET_VA_PA ();
@@ -361,26 +357,8 @@ RhelDoUnMap(IN PVOID DeviceExtension, IN PSRB_TYPE Srb)
361357 srbExt -> sg [2 ].physAddr = StorPortGetPhysicalAddress (DeviceExtension , NULL , & srbExt -> vbr .status , & fragLen );
362358 srbExt -> sg [2 ].length = sizeof (srbExt -> vbr .status );
363359
364- if (adaptExt -> num_queues > 1 )
365- {
366- STARTIO_PERFORMANCE_PARAMETERS param ;
367- param .Size = sizeof (STARTIO_PERFORMANCE_PARAMETERS );
368- status = StorPortGetStartIoPerfParams (DeviceExtension , (PSCSI_REQUEST_BLOCK )Srb , & param );
369- if (status == STOR_STATUS_SUCCESS )
370- {
371- RhelDbgPrint (TRACE_LEVEL_INFORMATION ,
372- " srb %p, QueueNumber %lu, MessageNumber %lu, ChannelNumber %lu.\n" ,
373- Srb ,
374- QueueNumber ,
375- param .MessageNumber ,
376- param .ChannelNumber );
377- MESSAGENUMBER_TO_QUEUE ();
378- }
379- else
380- {
381- RhelDbgPrint (TRACE_LEVEL_ERROR , " StorPortGetStartIoPerfParams failed srb %p status 0x%x.\n" , Srb , status );
382- }
383- }
360+ QueueNumber = GetSrbQueueNumber (DeviceExtension , Srb );
361+ MessageId = QueueNumber + 1 ;
384362
385363 if (adaptExt -> reset_in_progress )
386364 {
@@ -447,7 +425,6 @@ RhelGetSerialNumber(IN PVOID DeviceExtension, IN PSRB_TYPE Srb)
447425 struct virtqueue * vq = NULL ;
448426 PADAPTER_EXTENSION adaptExt = (PADAPTER_EXTENSION )DeviceExtension ;
449427 PSRB_EXTENSION srbExt = SRB_EXTENSION (Srb );
450- ULONG status = STOR_STATUS_SUCCESS ;
451428 PVOID va = NULL ;
452429 ULONGLONG pa = 0ULL ;
453430 BOOLEAN result = FALSE;
@@ -459,26 +436,9 @@ RhelGetSerialNumber(IN PVOID DeviceExtension, IN PSRB_TYPE Srb)
459436
460437 RhelDbgPrint (TRACE_LEVEL_INFORMATION , " srbExt %p.\n" , srbExt );
461438
462- if (adaptExt -> num_queues > 1 )
463- {
464- STARTIO_PERFORMANCE_PARAMETERS param ;
465- param .Size = sizeof (STARTIO_PERFORMANCE_PARAMETERS );
466- status = StorPortGetStartIoPerfParams (DeviceExtension , (PSCSI_REQUEST_BLOCK )Srb , & param );
467- if (status == STOR_STATUS_SUCCESS )
468- {
469- RhelDbgPrint (TRACE_LEVEL_INFORMATION ,
470- " srb %p, QueueNumber %lu, MessageNumber %lu, ChannelNumber %lu.\n" ,
471- Srb ,
472- QueueNumber ,
473- param .MessageNumber ,
474- param .ChannelNumber );
475- MESSAGENUMBER_TO_QUEUE ();
476- }
477- else
478- {
479- RhelDbgPrint (TRACE_LEVEL_ERROR , " StorPortGetStartIoPerfParams failed srb %p status 0x%x.\n" , Srb , status );
480- }
481- }
439+ QueueNumber = GetSrbQueueNumber (DeviceExtension , Srb );
440+ MessageId = QueueNumber + 1 ;
441+
482442 if (adaptExt -> reset_in_progress )
483443 {
484444 SRB_SET_DATA_TRANSFER_LENGTH (Srb , 0 );
0 commit comments