Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Thumshirn <jthumshirn@suse.de>2018-07-03 12:53:48 +0200
committerJohannes Thumshirn <jthumshirn@suse.de>2018-07-03 12:53:53 +0200
commit7b131debba71a465a878f1c000ab76eb25210382 (patch)
treeaebd601cf427194e971926986b0b08cad4c9f0a0
parent365a14c9a0ab82aa578d12e745021dcc92ce244b (diff)
scsi: lpfc: Fix 16gb hbas failing cq create (bsc#1095453).
-rw-r--r--patches.drivers/scsi-lpfc-fix-16gb-hbas-failing-cq-create.patch82
-rw-r--r--series.conf1
2 files changed, 83 insertions, 0 deletions
diff --git a/patches.drivers/scsi-lpfc-fix-16gb-hbas-failing-cq-create.patch b/patches.drivers/scsi-lpfc-fix-16gb-hbas-failing-cq-create.patch
new file mode 100644
index 0000000000..db2837f115
--- /dev/null
+++ b/patches.drivers/scsi-lpfc-fix-16gb-hbas-failing-cq-create.patch
@@ -0,0 +1,82 @@
+From: James Smart <jsmart2021@gmail.com>
+Date: Thu, 24 May 2018 21:09:00 -0700
+Subject: scsi: lpfc: Fix 16gb hbas failing cq create.
+Git-commit: c221768bd49a7423be57c00a56985c0e9c4122cd
+Patch-mainline: v4.18-rc1
+References: bsc#1095453
+
+The lancer G5 chip family fails the CQ create with 16k page size. The
+hardware incorrectly reports it supports large page sizes when it is
+actually limited to 4k pages.
+
+A prior patch resolved this for the A0 chip revision only. This patch
+excludes all revisions of the G5 asic from using large page sizes. As
+knowing the actual chip revision is unnecessary, the now unused definitions
+are removed
+
+Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
+Signed-off-by: James Smart <james.smart@broadcom.com>
+Reviewed-by: Hannes Reinecke <hare@suse.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/scsi/lpfc/lpfc_hw4.h | 11 -----------
+ drivers/scsi/lpfc/lpfc_init.c | 9 +--------
+ drivers/scsi/lpfc/lpfc_sli4.h | 1 -
+ 3 files changed, 1 insertion(+), 20 deletions(-)
+
+--- a/drivers/scsi/lpfc/lpfc_hw4.h
++++ b/drivers/scsi/lpfc/lpfc_hw4.h
+@@ -103,17 +103,6 @@ struct lpfc_sli_intf {
+ #define LPFC_SLI_INTF_IF_TYPE_VIRT 1
+ };
+
+-struct lpfc_sli_asic_rev {
+- u32 word0;
+-#define LPFC_SLI_ASIC_VER_A 0x0
+-#define LPFC_SLI_ASIC_VER_B 0x1
+-#define LPFC_SLI_ASIC_VER_C 0x2
+-#define LPFC_SLI_ASIC_VER_D 0x3
+-#define lpfc_sli_asic_ver_SHIFT 4
+-#define lpfc_sli_asic_ver_MASK 0x0000000F
+-#define lpfc_sli_asic_ver_WORD word0
+-};
+-
+ #define LPFC_SLI4_MBX_EMBED true
+ #define LPFC_SLI4_MBX_NEMBED false
+
+--- a/drivers/scsi/lpfc/lpfc_init.c
++++ b/drivers/scsi/lpfc/lpfc_init.c
+@@ -9481,11 +9481,6 @@ lpfc_sli4_pci_mem_setup(struct lpfc_hba
+ return error;
+ }
+
+- if (pci_read_config_dword(pdev, LPFC_SLI_ASIC_VER,
+- &phba->sli4_hba.sli_asic_ver.word0)) {
+- return error;
+- }
+-
+ /* There is no SLI3 failback for SLI4 devices. */
+ if (bf_get(lpfc_sli_intf_valid, &phba->sli4_hba.sli_intf) !=
+ LPFC_SLI_INTF_VALID) {
+@@ -10918,9 +10913,7 @@ lpfc_get_sli4_parameters(struct lpfc_hba
+ if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) ==
+ LPFC_SLI_INTF_IF_TYPE_2) &&
+ (bf_get(lpfc_sli_intf_sli_family, &phba->sli4_hba.sli_intf) ==
+- LPFC_SLI_INTF_FAMILY_LNCR_A0) &&
+- (bf_get(lpfc_sli_asic_ver, &phba->sli4_hba.sli_asic_ver) ==
+- LPFC_SLI_ASIC_VER_A))
++ LPFC_SLI_INTF_FAMILY_LNCR_A0))
+ exp_wqcq_pages = false;
+
+ if ((bf_get(cfg_cqpsize, mbx_sli4_parameters) & LPFC_CQ_16K_PAGE_SZ) &&
+--- a/drivers/scsi/lpfc/lpfc_sli4.h
++++ b/drivers/scsi/lpfc/lpfc_sli4.h
+@@ -578,7 +578,6 @@ struct lpfc_sli4_hba {
+ uint32_t ue_to_sr;
+ uint32_t ue_to_rp;
+ struct lpfc_register sli_intf;
+- struct lpfc_register sli_asic_ver;
+ struct lpfc_pc_sli4_params pc_sli4_params;
+ struct lpfc_bbscn_params bbscn_params;
+ struct msix_entry *msix_entries;
diff --git a/series.conf b/series.conf
index 2a378ed01b..986e0c0c70 100644
--- a/series.conf
+++ b/series.conf
@@ -18757,6 +18757,7 @@
# bsc#1095453
patches.drivers/scsi-lpfc-correct-oversubscription-of-nvme-io-requests-for-an-adapter.patch
+ patches.drivers/scsi-lpfc-fix-16gb-hbas-failing-cq-create.patch
patches.drivers/nvme-remove-nvme_revalidate_ns.patch
patches.drivers/nvme-Fix-setting-logical-block-format-when-revalidat.patch