Hello James,
excuse me, but i have a question concerning following changes, made for support
of Compaq Fiber Channel Array RM4000.
This patch changes logic for ALL devices which have scsi_level detected as
SCSI_UNKNOWN,
all such devices now won't store LUN values in scsi commands and ALL of them
would report their luns.
Do you know if there are such devices (with scsi_level detected as
SCSI_UNKNOWN) other then Compaq Fiber Channel Array RM4000?
Wouldn't these changes brake their support?
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4d7db04a7a69099accd84984a78c64d2178252f1
http://marc.theaimsgroup.com/?l=linux-scsi&m=114391012120176&w=2
Hunks from the patch i'm talking about:
linux-2.6.16/drivers/scsi/scsi.c:
* If SCSI-2 or lower, store the LUN value in cmnd.
*/
- if (cmd->device->scsi_level <= SCSI_2) {
+ if (cmd->device->scsi_level <= SCSI_2 &&
+ cmd->device->scsi_level != SCSI_UNKNOWN) {
cmd->cmnd[1] = (cmd->cmnd[1] & 0x1f) |
(cmd->device->lun << 5 & 0xe0);
}
linux-2.6.16/drivers/scsi/scsi_scan.c:
* Also allow SCSI-2 and SCSI-UNKNOWN if BLIST_REPORTLUN is set and host
* adapter does support more than 8 LUNs.
*/
- if ((bflags & BLIST_NOREPORTLUN) ||
- starget->scsi_level < SCSI_2 ||
- (starget->scsi_level < SCSI_3 &&
- (!(bflags & BLIST_REPORTLUN) || shost->max_lun <= 8)) )
+ if (bflags & BLIST_NOREPORTLUN)
+ return 1;
+ if (starget->scsi_level < SCSI_2 &&
+ starget->scsi_level != SCSI_UNKNOWN)
+ return 1;
+ if (starget->scsi_level < SCSI_3 &&
+ (!(bflags & BLIST_REPORTLUN) || shost->max_lun <= 8))
return 1;
Thank you.
--
Konstantin Khorenko,
SWsoft, Inc.
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html