On 02/13/13 20:52, Jeremy Linton wrote:
On 2/13/2013 9:06 AM, Hannes Reinecke wrote:
So add a new flag 'support_64bit_luns' to the scsi host and modify report
lun scan to not check for max_luns during scanning if that flag is set.
This will get rid of the

        Along these lines, I don't think the scsilun_to_int() and 
int_to_scsilun()
routines are correct for > 2^14  luns. SAM  4.6 defines bits 6,7 of byte zero
in the LU representation format as the address method. Which when set to 00b
limits it to 256 luns but the overflow into the bus ID probably works for some
devices.

        Those routines should probably select/detect an alternative address 
method
for luns > 256.

        Or am I missing something?

I think the LUN-to-int translation should depend on the LUN addressing method supported by the target. SAM-5 defines the following LUN addressing methods:
a) peripheral device addressing method;
b) flat space addressing method;
c) logical unit addressing method,
d) extended logical unit addressing method;
e) long extended logical unit addressing method.

scsilun_to_int() does the translation correctly for some of these addressing methods but not for all of them.

Bart.

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

Reply via email to