Older HBAs are only capable of supporting 16-bit LUNs,
so we need to make sure to adjust max_lun accordingly.

Signed-off-by: Hannes Reinecke <h...@suse.de>
Acked-by: Chad Dupuis <chad.dup...@qlogic.com>
Reviewed-by: Christoph Hellwig <h...@infradead.org>
Reviewed-by: Ewan Milne <emi...@redhat.com>
---
 drivers/scsi/qla2xxx/qla_os.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 19e99cc..264d97e 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2656,7 +2656,12 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct 
pci_device_id *id)
        else
                host->max_cmd_len = MAX_CMDSZ;
        host->max_channel = MAX_BUSES - 1;
-       host->max_lun = ql2xmaxlun;
+       /* Older HBAs support only 16-bit LUNs */
+       if (!IS_QLAFX00(ha) && !IS_FWI2_CAPABLE(ha) &&
+           ql2xmaxlun > 0xffff)
+               host->max_lun = 0xffff;
+       else
+               host->max_lun = ql2xmaxlun;
        host->transportt = qla2xxx_transport_template;
        sht->vendor_id = (SCSI_NL_VID_TYPE_PCI | PCI_VENDOR_ID_QLOGIC);
 
-- 
1.7.12.4

--
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