Re: [PATCHv2 11/11] mpt3sas: register reserved commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/17/2017 01:38 PM, Christoph Hellwig wrote:
> On Fri, Feb 17, 2017 at 09:23:10AM +0100, Hannes Reinecke wrote:
>> The mpt3sas driver requires a reserved command space to handle
>> SCSI passthrough commands.
>>
>> Signed-off-by: Hannes Reinecke <hare@xxxxxxxx>
>> ---
>>  drivers/scsi/mpt3sas/mpt3sas_base.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
>> index e9470a3..97189ad 100644
>> --- a/drivers/scsi/mpt3sas/mpt3sas_base.c
>> +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
>> @@ -2360,6 +2360,8 @@ struct scsiio_tracker *
>>  	} else {
>>  		u32 unique_tag = blk_mq_unique_tag(scmd->request);
>>  		u16 tag = blk_mq_unique_tag_to_tag(unique_tag);
>> +
>> +		WARN_ON(tag < ioc->shost->reserved_cmds);
>>  		request = scsi_cmd_priv(scmd);
>>  		smid = tag + 1;
>>  	}
>> @@ -3521,7 +3523,8 @@ void mpt3sas_base_clear_st(struct MPT3SAS_ADAPTER *ioc,
>>  	/* set the scsi host can_queue depth
>>  	 * with some internal commands that could be outstanding
>>  	 */
>> -	ioc->shost->can_queue = ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT;
>> +	ioc->shost->reserved_cmds = INTERNAL_SCSIIO_CMDS_COUNT;
>> +	ioc->shost->can_queue = ioc->scsiio_depth - ioc->shost->reserved_cmds;
> 
> You're never allocating a reserved request.  Just remove the number of
> reserved cmds from can_queue and you can use them on your own.
> 
> So I don't think you'll actually need to use reserved request here,
> but instead you should set up can_queue properly earlier in the series.
> 
Well, once I'm switching over to embedded commands I'll have to
integrate with SCSI midlayer to actually _allocate_ the tracker
structure for me.
At the same time the midlayer should _not_ use that structure for normal
I/O; which sounds suspiciously like reserved commands to me ...
Oh well; guess I'll have to do it, then.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		               zSeries & Storage
hare@xxxxxxxx			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux