From: Hannes Reinecke Date: Tue, 3 Jun 2014 08:58:54 +0000 (+0200) Subject: qla2xxx: Restrict max_lun to 16-bit for older HBAs X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=755f516bbb983915d6cbfb5aa592cc0a5a99fd00;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git qla2xxx: Restrict max_lun to 16-bit for older HBAs 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 Acked-by: Chad Dupuis Reviewed-by: Ewan Milne Signed-off-by: Christoph Hellwig --- diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index d96bfb55e57b..5269aee1df3b 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2661,7 +2661,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);