On 03/27/2013 08:37 AM, Hannes Reinecke wrote:
> On 03/26/2013 07:00 PM, Chad Dupuis wrote:
>>
>>
>> On Tue, 19 Feb 2013, Hannes Reinecke wrote:
>>
>>> This patchset updates the SCSI midlayer to use 64-bit LUNs
>>> internally.
>>> It eliminates the need to limit the number of LUNs artificially to
>>> avoid aliasing issues; the SCSI midlayer can now accept any LUN
>>> presented
>>> to it.
>>>
>>> The LLDD specific settings for 'max_lun' have been left untouched;
>>> it should be raised to '~0' if the HBA supports 64-bit LUNs
>>> internally.
>>> However, it is up to the driver maintainer to raise that limit.
>>>
>>> Hannes Reinecke (4):
>>>  scsi_scan: Fixup scsilun_to_int()
>>>  scsi: use 64-bit LUNs
>>>  scsi: use 64-bit value for 'max_luns'
>>>  scsi: Remove CONFIG_SCSI_MULTI_LUN
>>>
>>
>> Hannes,
>>
>> As we've reviewed these patches internally, the one question that keeps
>> coming up is how do we handle hardware that cannot handle a 64-bit LUN
>> address? For example, some of our older 2G/bps hardware can only
>> handle a 16-bit LUN address.  Currently we convert the u32 value to u16.
>  >  Do we do the same for the 64-bit conversion? Can a way be 
> devised to
>> "opt-out" of receiving a 64-bit address in the first place (IIRC this
>  > was an option in the v1 patch set)?
>>
> Yes, you can.
>
> The idea here is to let 'max_luns' control this behaviour; 
> 'max_luns' is the highest LUN number the host can support.
> So for 16-bit LUN you would set max_luns to '0xFFFF', and for 32-bit
> LUN addresses you would be setting max_luns to '0xFFFFFFFF'.

Hi all,

in scsi_report_lun_scan is max_lun compared with the result of scsilun_to_int,
but in that value is also stored the address method. This means, that we compare
the max_lun to a LUN 'handle' which doesn't seem to make much sense.
This makes that test dependent on which address method is used and not
only to the LUN number which is I think expected.
The solution is to have a new function 'scsilun_to_num', (I can send a patch)
or let the individual drivers set the max_lun to -1 and test for the allowed 
LUNs
in the driver.

Thanks,
Tomas

>
> However, since you mention it, maybe I should add a 'scsilun_to_u32'
> conversion routine, as this is requested in several places.
>
> Cheers,
>
> Hannes

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to