Home Home > GIT Browse > openSUSE-15.0
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2019-04-18 07:09:41 +0200
committerKernel Build Daemon <kbuild@suse.de>2019-04-18 07:09:41 +0200
commit5ef07291756a052f2f343ffc6bd9a9ffe87eb0b2 (patch)
tree70d6499d22d325493428cbed026799754f6d57be
parent285395ddc898a2a929bef5b9fe01bf002bdbd199 (diff)
parented4103eac737160783189b3c7296517318394db0 (diff)
Merge branch 'SLE15' into openSUSE-15.0openSUSE-15.0
-rw-r--r--patches.arch/svm-avic-fix-invalidate-logical-apic-id-entry42
-rw-r--r--patches.drivers/brcmfmac-assure-SSID-length-from-firmware-is-limited.patch38
-rw-r--r--patches.fixes/0001-cxgb4-Add-new-T5-PCI-device-ids-0x50af-and-0x50b0.patch29
-rw-r--r--patches.fixes/0001-cxgb4-Add-new-T6-PCI-device-ids-0x608a.patch28
-rw-r--r--patches.fixes/0001-cxgb4-Export-sge_host_page_size-to-ulds.patch38
-rw-r--r--patches.fixes/0001-cxgb4-Remove-SGE_HOST_PAGE_SIZE-dependency-on-page-s.patch51
-rw-r--r--patches.fixes/0001-cxgb4-assume-flash-part-size-to-be-4MB-if-it-can-t-b.patch106
-rw-r--r--patches.fixes/0001-cxgb4-collect-ASIC-LA-dumps-from-ULP-TX.patch136
-rw-r--r--patches.fixes/0001-cxgb4-collect-number-of-free-PSTRUCT-page-pointers.patch115
-rw-r--r--patches.fixes/0001-cxgb4-display-number-of-rx-and-tx-pages-free.patch86
-rw-r--r--patches.fixes/0001-cxgb4-move-Tx-Rx-free-pages-collection-to-common-cod.patch88
-rw-r--r--patches.fixes/0001-cxgb4-use-FW_PORT_ACTION_L1_CFG32-for-32-bit-capabil.patch49
-rw-r--r--patches.fixes/0001-iw_cxgb4-cq-qp-mask-depends-on-bar2-pages-in-a-host-.patch56
-rw-r--r--patches.fixes/CIFS-fix-POSIX-lock-leak-and-invalid-ptr-deref.patch148
-rw-r--r--patches.kabi/kabi-cxgb4-MU.patch31
-rw-r--r--series.conf14
16 files changed, 1044 insertions, 11 deletions
diff --git a/patches.arch/svm-avic-fix-invalidate-logical-apic-id-entry b/patches.arch/svm-avic-fix-invalidate-logical-apic-id-entry
new file mode 100644
index 0000000000..990d8d671e
--- /dev/null
+++ b/patches.arch/svm-avic-fix-invalidate-logical-apic-id-entry
@@ -0,0 +1,42 @@
+From: "Suthikulpanit, Suravee" <Suravee.Suthikulpanit@amd.com>
+Date: Tue, 26 Mar 2019 03:57:37 +0000
+Subject: svm/avic: Fix invalidate logical APIC id entry
+Git-commit: e44e3eacccfd2294a1ce279f68452b1635d7fa82
+Patch-mainline: v5.1-rc6
+References: bsc#1132726
+
+Only clear the valid bit when invalidate logical APIC id entry.
+The current logic clear the valid bit, but also set the rest of
+the bits (including reserved bits) to 1.
+
+Fixes: 98d90582be2e ('svm: Fix AVIC DFR and LDR handling')
+Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Acked-by: Joerg Roedel <jroedel@suse.de>
+---
+ arch/x86/kvm/svm.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
+index d7b14c902052..933f19d840fe 100644
+--- a/arch/x86/kvm/svm.c
++++ b/arch/x86/kvm/svm.c
+@@ -262,6 +262,7 @@ struct amd_svm_iommu_ir {
+ };
+
+ #define AVIC_LOGICAL_ID_ENTRY_GUEST_PHYSICAL_ID_MASK (0xFF)
++#define AVIC_LOGICAL_ID_ENTRY_VALID_BIT 31
+ #define AVIC_LOGICAL_ID_ENTRY_VALID_MASK (1 << 31)
+
+ #define AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK (0xFFULL)
+@@ -4607,7 +4608,7 @@ static void avic_invalidate_logical_id_entry(struct kvm_vcpu *vcpu)
+ u32 *entry = avic_get_logical_id_entry(vcpu, svm->ldr_reg, flat);
+
+ if (entry)
+- WRITE_ONCE(*entry, (u32) ~AVIC_LOGICAL_ID_ENTRY_VALID_MASK);
++ clear_bit(AVIC_LOGICAL_ID_ENTRY_VALID_BIT, (unsigned long *)entry);
+ }
+
+ static int avic_handle_ldr_update(struct kvm_vcpu *vcpu)
+
diff --git a/patches.drivers/brcmfmac-assure-SSID-length-from-firmware-is-limited.patch b/patches.drivers/brcmfmac-assure-SSID-length-from-firmware-is-limited.patch
new file mode 100644
index 0000000000..c650b40b54
--- /dev/null
+++ b/patches.drivers/brcmfmac-assure-SSID-length-from-firmware-is-limited.patch
@@ -0,0 +1,38 @@
+From 1b5e2423164b3670e8bc9174e4762d297990deff Mon Sep 17 00:00:00 2001
+From: Arend van Spriel <arend.vanspriel@broadcom.com>
+Date: Thu, 14 Feb 2019 13:43:47 +0100
+Subject: [PATCH] brcmfmac: assure SSID length from firmware is limited
+Git-commit: 1b5e2423164b3670e8bc9174e4762d297990deff
+Patch-mainline: v5.1-rc1
+References: CVE-2019-9500,bsc#1132681
+
+The SSID length as received from firmware should not exceed
+IEEE80211_MAX_SSID_LEN as that would result in heap overflow.
+
+Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
+Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
+Reviewed-by: Franky Lin <franky.lin@broadcom.com>
+Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+index b5e291ed9496..012275fc3bf7 100644
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -3507,6 +3507,8 @@ brcmf_wowl_nd_results(struct brcmf_if *ifp, const struct brcmf_event_msg *e,
+ }
+
+ netinfo = brcmf_get_netinfo_array(pfn_result);
++ if (netinfo->SSID_len > IEEE80211_MAX_SSID_LEN)
++ netinfo->SSID_len = IEEE80211_MAX_SSID_LEN;
+ memcpy(cfg->wowl.nd->ssid.ssid, netinfo->SSID, netinfo->SSID_len);
+ cfg->wowl.nd->ssid.ssid_len = netinfo->SSID_len;
+ cfg->wowl.nd->n_channels = 1;
+--
+2.16.4
+
diff --git a/patches.fixes/0001-cxgb4-Add-new-T5-PCI-device-ids-0x50af-and-0x50b0.patch b/patches.fixes/0001-cxgb4-Add-new-T5-PCI-device-ids-0x50af-and-0x50b0.patch
new file mode 100644
index 0000000000..9db68cc76a
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-Add-new-T5-PCI-device-ids-0x50af-and-0x50b0.patch
@@ -0,0 +1,29 @@
+From: Ganesh Goudar <ganeshgr@chelsio.com>
+Subject: cxgb4: Add new T5 PCI device ids 0x50af and 0x50b0
+Patch-mainline: v4.19-rc1
+Git-commit: 6e24dcad021f82636709108a7f4c53f06ddf9ba0
+References: bsc#1127371
+
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h b/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
+index e3adf435913e..60df66f4d21c 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
+@@ -189,6 +189,8 @@ CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
+ CH_PCI_ID_TABLE_FENTRY(0x50ac), /* Custom T540-BT */
+ CH_PCI_ID_TABLE_FENTRY(0x50ad), /* Custom T520-CR */
+ CH_PCI_ID_TABLE_FENTRY(0x50ae), /* Custom T540-XL-SO */
++ CH_PCI_ID_TABLE_FENTRY(0x50af), /* Custom T580-KR-SO */
++ CH_PCI_ID_TABLE_FENTRY(0x50b0), /* Custom T520-CR-LOM */
+
+ /* T6 adapters:
+ */
+--
+2.12.3
+
diff --git a/patches.fixes/0001-cxgb4-Add-new-T6-PCI-device-ids-0x608a.patch b/patches.fixes/0001-cxgb4-Add-new-T6-PCI-device-ids-0x608a.patch
new file mode 100644
index 0000000000..517722cde8
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-Add-new-T6-PCI-device-ids-0x608a.patch
@@ -0,0 +1,28 @@
+From: Ganesh Goudar <ganeshgr@chelsio.com>
+Subject: cxgb4: Add new T6 PCI device ids 0x608a
+Patch-mainline: v5.0-rc1
+Git-commit: 6d444c4efcdeca8b36f6059aa5a1a93f6ca3be6a
+References: bsc#1127371
+
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h b/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
+index 60df66f4d21c..bf7325f6d553 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
+@@ -217,6 +217,7 @@ CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
+ CH_PCI_ID_TABLE_FENTRY(0x6087), /* Custom T6225-CR */
+ CH_PCI_ID_TABLE_FENTRY(0x6088), /* Custom T62100-CR */
+ CH_PCI_ID_TABLE_FENTRY(0x6089), /* Custom T62100-KR */
++ CH_PCI_ID_TABLE_FENTRY(0x608a), /* Custom T62100-CR */
+ CH_PCI_DEVICE_ID_TABLE_DEFINE_END;
+
+ #endif /* __T4_PCI_ID_TBL_H__ */
+--
+2.12.3
+
diff --git a/patches.fixes/0001-cxgb4-Export-sge_host_page_size-to-ulds.patch b/patches.fixes/0001-cxgb4-Export-sge_host_page_size-to-ulds.patch
new file mode 100644
index 0000000000..4974583d25
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-Export-sge_host_page_size-to-ulds.patch
@@ -0,0 +1,38 @@
+From: Raju Rangoju <rajur@chelsio.com>
+Subject: cxgb4: Export sge_host_page_size to ulds
+Patch-mainline: v5.0-rc8
+Git-commit: fc4144e7815b7747b6aba140d7a91da45ee9dd8c
+References: bsc#1127371
+
+Export the sge_host_page_size field to ULDs via cxgb4_lld_info, so that
+iw_cxgb4 can make use of this in calculating the correct qp/cq mask.
+
+Fixes: 2391b0030e24 ("cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size")
+Signed-off-by: Raju Rangoju <rajur@chelsio.com>
+Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
+Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c | 1 +
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
+@@ -647,6 +647,7 @@ static void uld_init(struct adapter *ada
+ lld->cclk_ps = 1000000000 / adap->params.vpd.cclk;
+ lld->udb_density = 1 << adap->params.sge.eq_qpp;
+ lld->ucq_density = 1 << adap->params.sge.iq_qpp;
++ lld->sge_host_page_size = 1 << (adap->params.sge.hps + 10);
+ lld->filt_mode = adap->params.tp.vlan_pri_map;
+ /* MODQ_REQ_MAP sets queues 0-3 to chan 0-3 */
+ for (i = 0; i < NCHAN; i++)
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h
+@@ -329,6 +329,7 @@ struct cxgb4_lld_info {
+ unsigned int cclk_ps; /* Core clock period in psec */
+ unsigned short udb_density; /* # of user DB/page */
+ unsigned short ucq_density; /* # of user CQs/page */
++ unsigned int sge_host_page_size; /* SGE host page size */
+ unsigned short filt_mode; /* filter optional components */
+ unsigned short tx_modq[NCHAN]; /* maps each tx channel to a */
+ /* scheduler queue */
diff --git a/patches.fixes/0001-cxgb4-Remove-SGE_HOST_PAGE_SIZE-dependency-on-page-s.patch b/patches.fixes/0001-cxgb4-Remove-SGE_HOST_PAGE_SIZE-dependency-on-page-s.patch
new file mode 100644
index 0000000000..798c3d567f
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-Remove-SGE_HOST_PAGE_SIZE-dependency-on-page-s.patch
@@ -0,0 +1,51 @@
+From: Arjun Vynipadath <arjun@chelsio.com>
+Subject: cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size
+Patch-mainline: v5.0-rc1
+Git-commit: 2391b0030e241386d710df10e53e2cfc3c5d4fc1
+References: bsc#1127371
+
+The SGE Host Page Size has nothing to do with the actual
+Host Page Size. It's the SGE's BAR2 Doorbell/GTS Page Size
+for interpreting the SGE Ingress/Egress Queue per Page values.
+Firmware reads all of these things and makes all the
+subsequent changes necessary. The Host Driver uses the SGE
+Host Page Size in order to properly calculate BAR2 Offsets.
+
+Signed-off-by: Casey Leedom <leedom@chelsio.com>
+Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+index cb523949c812..fc6a08789835 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+@@ -7141,21 +7141,10 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
+ unsigned int cache_line_size)
+ {
+ unsigned int page_shift = fls(page_size) - 1;
+- unsigned int sge_hps = page_shift - 10;
+ unsigned int stat_len = cache_line_size > 64 ? 128 : 64;
+ unsigned int fl_align = cache_line_size < 32 ? 32 : cache_line_size;
+ unsigned int fl_align_log = fls(fl_align) - 1;
+
+- t4_write_reg(adap, SGE_HOST_PAGE_SIZE_A,
+- HOSTPAGESIZEPF0_V(sge_hps) |
+- HOSTPAGESIZEPF1_V(sge_hps) |
+- HOSTPAGESIZEPF2_V(sge_hps) |
+- HOSTPAGESIZEPF3_V(sge_hps) |
+- HOSTPAGESIZEPF4_V(sge_hps) |
+- HOSTPAGESIZEPF5_V(sge_hps) |
+- HOSTPAGESIZEPF6_V(sge_hps) |
+- HOSTPAGESIZEPF7_V(sge_hps));
+-
+ if (is_t4(adap->params.chip)) {
+ t4_set_reg_field(adap, SGE_CONTROL_A,
+ INGPADBOUNDARY_V(INGPADBOUNDARY_M) |
+--
+2.12.3
+
diff --git a/patches.fixes/0001-cxgb4-assume-flash-part-size-to-be-4MB-if-it-can-t-b.patch b/patches.fixes/0001-cxgb4-assume-flash-part-size-to-be-4MB-if-it-can-t-b.patch
new file mode 100644
index 0000000000..7fdea0bcb9
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-assume-flash-part-size-to-be-4MB-if-it-can-t-b.patch
@@ -0,0 +1,106 @@
+From: Casey Leedom <leedom@chelsio.com>
+Subject: assume flash part size to be 4MB, if it can't be
+ determined
+Patch-mainline: v4.18-rc6
+Git-commit: 843789f6dd6ae1651a77ac99c13bcaf191ebe05c
+References: bsc#1127371
+
+t4_get_flash_params() fails in a fatal fashion if the FLASH part isn't
+one of the recognized parts. But this leads to desperate efforts to update
+drivers when various FLASH parts which we are using suddenly become
+unavailable and we need to substitute new FLASH parts. This has lead to
+more than one Customer Field Emergency when a Customer has an old driver
+and suddenly can't use newly shipped adapters.
+
+This commit fixes this by simply assuming that the FLASH part is 4MB in
+size if it can't be identified. Note that all Chelsio adapters will have
+flash parts which are at least 4MB in size.
+
+Signed-off-by: Casey Leedom <leedom@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 35 +++++++++++-------------------
+ 1 file changed, 13 insertions(+), 22 deletions(-)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+index 974a868a4824..3720c3e11ebb 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+@@ -8702,7 +8702,7 @@ static int t4_get_flash_params(struct adapter *adap)
+ };
+
+ unsigned int part, manufacturer;
+- unsigned int density, size;
++ unsigned int density, size = 0;
+ u32 flashid = 0;
+ int ret;
+
+@@ -8772,11 +8772,6 @@ static int t4_get_flash_params(struct adapter *adap)
+ case 0x22: /* 256MB */
+ size = 1 << 28;
+ break;
+-
+- default:
+- dev_err(adap->pdev_dev, "Micron Flash Part has bad size, ID = %#x, Density code = %#x\n",
+- flashid, density);
+- return -EINVAL;
+ }
+ break;
+ }
+@@ -8792,10 +8787,6 @@ static int t4_get_flash_params(struct adapter *adap)
+ case 0x17: /* 64MB */
+ size = 1 << 26;
+ break;
+- default:
+- dev_err(adap->pdev_dev, "ISSI Flash Part has bad size, ID = %#x, Density code = %#x\n",
+- flashid, density);
+- return -EINVAL;
+ }
+ break;
+ }
+@@ -8811,10 +8802,6 @@ static int t4_get_flash_params(struct adapter *adap)
+ case 0x18: /* 16MB */
+ size = 1 << 24;
+ break;
+- default:
+- dev_err(adap->pdev_dev, "Macronix Flash Part has bad size, ID = %#x, Density code = %#x\n",
+- flashid, density);
+- return -EINVAL;
+ }
+ break;
+ }
+@@ -8830,17 +8817,21 @@ static int t4_get_flash_params(struct adapter *adap)
+ case 0x18: /* 16MB */
+ size = 1 << 24;
+ break;
+- default:
+- dev_err(adap->pdev_dev, "Winbond Flash Part has bad size, ID = %#x, Density code = %#x\n",
+- flashid, density);
+- return -EINVAL;
+ }
+ break;
+ }
+- default:
+- dev_err(adap->pdev_dev, "Unsupported Flash Part, ID = %#x\n",
+- flashid);
+- return -EINVAL;
++ }
++
++ /* If we didn't recognize the FLASH part, that's no real issue: the
++ * Hardware/Software contract says that Hardware will _*ALWAYS*_
++ * use a FLASH part which is at least 4MB in size and has 64KB
++ * sectors. The unrecognized FLASH part is likely to be much larger
++ * than 4MB, but that's all we really need.
++ */
++ if (size == 0) {
++ dev_warn(adap->pdev_dev, "Unknown Flash Part, ID = %#x, assuming 4MB\n",
++ flashid);
++ size = 1 << 22;
+ }
+
+ /* Store decoded Flash size and fall through into vetting code. */
+--
+2.12.3
+
diff --git a/patches.fixes/0001-cxgb4-collect-ASIC-LA-dumps-from-ULP-TX.patch b/patches.fixes/0001-cxgb4-collect-ASIC-LA-dumps-from-ULP-TX.patch
new file mode 100644
index 0000000000..7397bc59a8
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-collect-ASIC-LA-dumps-from-ULP-TX.patch
@@ -0,0 +1,136 @@
+From: Surendra Mobiya <surendra@chelsio.com>
+Subject: cxgb4: collect ASIC LA dumps from ULP TX
+Patch-mainline: v4.19-rc1
+Git-commit: 1eb94d441f1c6aff4a594662d11c183520ffe4f3
+References: bsc#1127371
+
+Signed-off-by: Surendra Mobiya <surendra@chelsio.com>
+Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h | 6 +++++
+ drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c | 32 +++++++++++++++++++++--
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c | 3 ++-
+ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 10 +++++++
+ 4 files changed, 48 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h b/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
+index 3c5057868ab3..aaf7985aef4c 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
+@@ -281,12 +281,18 @@ struct cudbg_tid_data {
+
+ #define CUDBG_NUM_ULPTX 11
+ #define CUDBG_NUM_ULPTX_READ 512
++#define CUDBG_NUM_ULPTX_ASIC 6
++#define CUDBG_NUM_ULPTX_ASIC_READ 128
++
++#define CUDBG_ULPTX_LA_REV 1
+
+ struct cudbg_ulptx_la {
+ u32 rdptr[CUDBG_NUM_ULPTX];
+ u32 wrptr[CUDBG_NUM_ULPTX];
+ u32 rddata[CUDBG_NUM_ULPTX];
+ u32 rd_data[CUDBG_NUM_ULPTX][CUDBG_NUM_ULPTX_READ];
++ u32 rdptr_asic[CUDBG_NUM_ULPTX_ASIC_READ];
++ u32 rddata_asic[CUDBG_NUM_ULPTX_ASIC_READ][CUDBG_NUM_ULPTX_ASIC];
+ };
+
+ #define CUDBG_CHAC_PBT_ADDR 0x2800
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
+index 0afcfe99bff3..b1eb843035ee 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
+@@ -2586,15 +2586,24 @@ int cudbg_collect_ulptx_la(struct cudbg_init *pdbg_init,
+ struct adapter *padap = pdbg_init->adap;
+ struct cudbg_buffer temp_buff = { 0 };
+ struct cudbg_ulptx_la *ulptx_la_buff;
++ struct cudbg_ver_hdr *ver_hdr;
+ u32 i, j;
+ int rc;
+
+- rc = cudbg_get_buff(pdbg_init, dbg_buff, sizeof(struct cudbg_ulptx_la),
++ rc = cudbg_get_buff(pdbg_init, dbg_buff,
++ sizeof(struct cudbg_ver_hdr) +
++ sizeof(struct cudbg_ulptx_la),
+ &temp_buff);
+ if (rc)
+ return rc;
+
+- ulptx_la_buff = (struct cudbg_ulptx_la *)temp_buff.data;
++ ver_hdr = (struct cudbg_ver_hdr *)temp_buff.data;
++ ver_hdr->signature = CUDBG_ENTITY_SIGNATURE;
++ ver_hdr->revision = CUDBG_ULPTX_LA_REV;
++ ver_hdr->size = sizeof(struct cudbg_ulptx_la);
++
++ ulptx_la_buff = (struct cudbg_ulptx_la *)(temp_buff.data +
++ sizeof(*ver_hdr));
+ for (i = 0; i < CUDBG_NUM_ULPTX; i++) {
+ ulptx_la_buff->rdptr[i] = t4_read_reg(padap,
+ ULP_TX_LA_RDPTR_0_A +
+@@ -2610,6 +2619,25 @@ int cudbg_collect_ulptx_la(struct cudbg_init *pdbg_init,
+ t4_read_reg(padap,
+ ULP_TX_LA_RDDATA_0_A + 0x10 * i);
+ }
++
++ for (i = 0; i < CUDBG_NUM_ULPTX_ASIC_READ; i++) {
++ t4_write_reg(padap, ULP_TX_ASIC_DEBUG_CTRL_A, 0x1);
++ ulptx_la_buff->rdptr_asic[i] =
++ t4_read_reg(padap, ULP_TX_ASIC_DEBUG_CTRL_A);
++ ulptx_la_buff->rddata_asic[i][0] =
++ t4_read_reg(padap, ULP_TX_ASIC_DEBUG_0_A);
++ ulptx_la_buff->rddata_asic[i][1] =
++ t4_read_reg(padap, ULP_TX_ASIC_DEBUG_1_A);
++ ulptx_la_buff->rddata_asic[i][2] =
++ t4_read_reg(padap, ULP_TX_ASIC_DEBUG_2_A);
++ ulptx_la_buff->rddata_asic[i][3] =
++ t4_read_reg(padap, ULP_TX_ASIC_DEBUG_3_A);
++ ulptx_la_buff->rddata_asic[i][4] =
++ t4_read_reg(padap, ULP_TX_ASIC_DEBUG_4_A);
++ ulptx_la_buff->rddata_asic[i][5] =
++ t4_read_reg(padap, PM_RX_BASE_ADDR);
++ }
++
+ return cudbg_write_and_release_buff(pdbg_init, &temp_buff, dbg_buff);
+ }
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
+index 8d751efcb90e..55b46592af28 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
+@@ -273,7 +273,8 @@ static u32 cxgb4_get_entity_length(struct adapter *adap, u32 entity)
+ }
+ break;
+ case CUDBG_ULPTX_LA:
+- len = sizeof(struct cudbg_ulptx_la);
++ len = sizeof(struct cudbg_ver_hdr) +
++ sizeof(struct cudbg_ulptx_la);
+ break;
+ case CUDBG_UP_CIM_INDIRECT:
+ n = 0;
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+index 6b55aa2eb2a5..446aaff15bae 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+@@ -1683,6 +1683,16 @@
+ #define ULP_TX_LA_RDPTR_0_A 0x8ec0
+ #define ULP_TX_LA_RDDATA_0_A 0x8ec4
+ #define ULP_TX_LA_WRPTR_0_A 0x8ec8
++#define ULP_TX_ASIC_DEBUG_CTRL_A 0x8f70
++
++#define ULP_TX_ASIC_DEBUG_0_A 0x8f74
++#define ULP_TX_ASIC_DEBUG_1_A 0x8f78
++#define ULP_TX_ASIC_DEBUG_2_A 0x8f7c
++#define ULP_TX_ASIC_DEBUG_3_A 0x8f80
++#define ULP_TX_ASIC_DEBUG_4_A 0x8f84
++
++/* registers for module PM_RX */
++#define PM_RX_BASE_ADDR 0x8fc0
+
+ #define PMRX_E_PCMD_PAR_ERROR_S 0
+ #define PMRX_E_PCMD_PAR_ERROR_V(x) ((x) << PMRX_E_PCMD_PAR_ERROR_S)
+--
+2.12.3
+
diff --git a/patches.fixes/0001-cxgb4-collect-number-of-free-PSTRUCT-page-pointers.patch b/patches.fixes/0001-cxgb4-collect-number-of-free-PSTRUCT-page-pointers.patch
new file mode 100644
index 0000000000..e0be357b5e
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-collect-number-of-free-PSTRUCT-page-pointers.patch
@@ -0,0 +1,115 @@
+From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+Subject: cxgb4: collect number of free PSTRUCT page pointers
+Patch-mainline: v4.19-rc1
+Git-commit: 9d0f180cd509aec0172ae15bf1aed54de34d1132
+References: bsc#1127371
+
+Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h | 3 +++
+ drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c | 17 ++++++++++++++---
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c | 3 ++-
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 3 ++-
+ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 5 +++++
+ 5 files changed, 26 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
+@@ -120,6 +120,8 @@ struct cudbg_mem_desc {
+ u32 idx;
+ };
+
++#define CUDBG_MEMINFO_REV 1
++
+ struct cudbg_meminfo {
+ struct cudbg_mem_desc avail[4];
+ struct cudbg_mem_desc mem[ARRAY_SIZE(cudbg_region) + 3];
+@@ -137,6 +139,7 @@ struct cudbg_meminfo {
+ u32 port_alloc[4];
+ u32 loopback_used[NCHAN];
+ u32 loopback_alloc[NCHAN];
++ u32 p_structs_free_cnt;
+ };
+
+ struct cudbg_cim_pif_la {
+--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
+@@ -365,6 +365,8 @@ int cudbg_fill_meminfo(struct adapter *p
+ meminfo_buff->tx_pages_data[3] = 1 << PMTXNUMCHN_G(lo);
+
+ meminfo_buff->p_structs = t4_read_reg(padap, TP_CMM_MM_MAX_PSTRUCT_A);
++ meminfo_buff->p_structs_free_cnt =
++ FREEPSTRUCTCOUNT_G(t4_read_reg(padap, TP_FLM_FREE_PS_CNT_A));
+
+ for (i = 0; i < 4; i++) {
+ if (CHELSIO_CHIP_VERSION(padap->params.chip) > CHELSIO_T5)
+@@ -1447,14 +1449,23 @@ int cudbg_collect_meminfo(struct cudbg_i
+ struct adapter *padap = pdbg_init->adap;
+ struct cudbg_buffer temp_buff = { 0 };
+ struct cudbg_meminfo *meminfo_buff;
++ struct cudbg_ver_hdr *ver_hdr;
+ int rc;
+
+- rc = cudbg_get_buff(pdbg_init, dbg_buff, sizeof(struct cudbg_meminfo),
+- &temp_buff);
++ rc = cudbg_get_buff(pdbg_init, dbg_buff,
++ sizeof(struct cudbg_ver_hdr) +
++ sizeof(struct cudbg_meminfo),
++ &temp_buff);
+ if (rc)
+ return rc;
+
+- meminfo_buff = (struct cudbg_meminfo *)temp_buff.data;
++ ver_hdr = (struct cudbg_ver_hdr *)temp_buff.data;
++ ver_hdr->signature = CUDBG_ENTITY_SIGNATURE;
++ ver_hdr->revision = CUDBG_MEMINFO_REV;
++ ver_hdr->size = sizeof(struct cudbg_meminfo);
++
++ meminfo_buff = (struct cudbg_meminfo *)(temp_buff.data +
++ sizeof(*ver_hdr));
+ rc = cudbg_fill_meminfo(padap, meminfo_buff);
+ if (rc) {
+ cudbg_err->sys_err = rc;
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
+@@ -225,7 +225,8 @@ static u32 cxgb4_get_entity_length(struc
+ len = sizeof(struct cudbg_tp_la) + TPLA_SIZE * sizeof(u64);
+ break;
+ case CUDBG_MEMINFO:
+- len = sizeof(struct cudbg_meminfo);
++ len = sizeof(struct cudbg_ver_hdr) +
++ sizeof(struct cudbg_meminfo);
+ break;
+ case CUDBG_CIM_PIF_LA:
+ len = sizeof(struct cudbg_cim_pif_la);
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+@@ -2899,7 +2899,8 @@ static int meminfo_show(struct seq_file
+ meminfo.tx_pages_data[1], meminfo.tx_pages_data[2],
+ meminfo.tx_pages_data[3]);
+
+- seq_printf(seq, "%u p-structs\n\n", meminfo.p_structs);
++ seq_printf(seq, "%u p-structs (%u free)\n\n",
++ meminfo.p_structs, meminfo.p_structs_free_cnt);
+
+ for (i = 0; i < 4; i++)
+ /* For T6 these are MAC buffer groups */
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+@@ -1502,8 +1502,13 @@
+ #define TP_MIB_DATA_A 0x7e54
+ #define TP_INT_CAUSE_A 0x7e74
+
++#define TP_FLM_FREE_PS_CNT_A 0x7e80
+ #define TP_FLM_FREE_RX_CNT_A 0x7e84
+
++#define FREEPSTRUCTCOUNT_S 0
++#define FREEPSTRUCTCOUNT_M 0x1fffffU
++#define FREEPSTRUCTCOUNT_G(x) (((x) >> FREEPSTRUCTCOUNT_S) & FREEPSTRUCTCOUNT_M)
++
+ #define FREERXPAGECOUNT_S 0
+ #define FREERXPAGECOUNT_M 0x1fffffU
+ #define FREERXPAGECOUNT_V(x) ((x) << FREERXPAGECOUNT_S)
diff --git a/patches.fixes/0001-cxgb4-display-number-of-rx-and-tx-pages-free.patch b/patches.fixes/0001-cxgb4-display-number-of-rx-and-tx-pages-free.patch
new file mode 100644
index 0000000000..4e55226b52
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-display-number-of-rx-and-tx-pages-free.patch
@@ -0,0 +1,86 @@
+From: Ganesh Goudar <ganeshgr@chelsio.com>
+Subject: cxgb4: display number of rx and tx pages free
+Patch-mainline: v4.19-rc1
+Git-commit: fa145d5dfd612ac318a1eb4b443af55e0f5c8ba7
+References: bsc#1127371
+
+display free rx and tx page count in the meminfo of
+an adapter.
+
+Signed-off-by: Casey Leedom <leedom@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 22 +++++++++++++++-------
+ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 14 ++++++++++++++
+ 2 files changed, 29 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+index 511606fd1b20..631b78baedbb 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+@@ -2858,6 +2858,7 @@ static int meminfo_show(struct seq_file *seq, void *v)
+ {
+ static const char * const memory[] = { "EDC0:", "EDC1:", "MC:",
+ "MC0:", "MC1:", "HMA:"};
++ unsigned int free_rx_cnt, free_tx_cnt;
+ struct adapter *adap = seq->private;
+ struct cudbg_meminfo meminfo;
+ int i, rc;
+@@ -2889,13 +2890,20 @@ static int meminfo_show(struct seq_file *seq, void *v)
+ mem_region_show(seq, "uP Extmem2:", meminfo.up_extmem2_lo,
+ meminfo.up_extmem2_hi);
+
+- seq_printf(seq, "\n%u Rx pages of size %uKiB for %u channels\n",
+- meminfo.rx_pages_data[0], meminfo.rx_pages_data[1],
+- meminfo.rx_pages_data[2]);
+-
+- seq_printf(seq, "%u Tx pages of size %u%ciB for %u channels\n",
+- meminfo.tx_pages_data[0], meminfo.tx_pages_data[1],
+- meminfo.tx_pages_data[2], meminfo.tx_pages_data[3]);
++ for (i = 0, free_rx_cnt = 0; i < 2; i++)
++ free_rx_cnt += FREERXPAGECOUNT_G
++ (t4_read_reg(adap, TP_FLM_FREE_RX_CNT_A));
++ seq_printf(seq, "\n%u Rx pages (%u free) of size %uKiB for %u channels\n",
++ meminfo.rx_pages_data[0], free_rx_cnt,
++ meminfo.rx_pages_data[1], meminfo.rx_pages_data[2]);
++
++ for (i = 0, free_tx_cnt = 0; i < 4; i++)
++ free_tx_cnt += FREETXPAGECOUNT_G
++ (t4_read_reg(adap, TP_FLM_FREE_TX_CNT_A));
++ seq_printf(seq, "%u Tx pages (%u free) of size %u%ciB for %u channels\n",
++ meminfo.tx_pages_data[0], free_tx_cnt,
++ meminfo.tx_pages_data[1], meminfo.tx_pages_data[2],
++ meminfo.tx_pages_data[3]);
+
+ seq_printf(seq, "%u p-structs\n\n", meminfo.p_structs);
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+index 446aaff15bae..da885881c02f 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+@@ -1502,6 +1502,20 @@
+ #define TP_MIB_DATA_A 0x7e54
+ #define TP_INT_CAUSE_A 0x7e74
+
++#define TP_FLM_FREE_RX_CNT_A 0x7e84
++
++#define FREERXPAGECOUNT_S 0
++#define FREERXPAGECOUNT_M 0x1fffffU
++#define FREERXPAGECOUNT_V(x) ((x) << FREERXPAGECOUNT_S)
++#define FREERXPAGECOUNT_G(x) (((x) >> FREERXPAGECOUNT_S) & FREERXPAGECOUNT_M)
++
++#define TP_FLM_FREE_TX_CNT_A 0x7e88
++
++#define FREETXPAGECOUNT_S 0
++#define FREETXPAGECOUNT_M 0x1fffffU
++#define FREETXPAGECOUNT_V(x) ((x) << FREETXPAGECOUNT_S)
++#define FREETXPAGECOUNT_G(x) (((x) >> FREETXPAGECOUNT_S) & FREETXPAGECOUNT_M)
++
+ #define FLMTXFLSTEMPTY_S 30
+ #define FLMTXFLSTEMPTY_V(x) ((x) << FLMTXFLSTEMPTY_S)
+ #define FLMTXFLSTEMPTY_F FLMTXFLSTEMPTY_V(1U)
+--
+2.12.3
+
diff --git a/patches.fixes/0001-cxgb4-move-Tx-Rx-free-pages-collection-to-common-cod.patch b/patches.fixes/0001-cxgb4-move-Tx-Rx-free-pages-collection-to-common-cod.patch
new file mode 100644
index 0000000000..339bfd5ba5
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-move-Tx-Rx-free-pages-collection-to-common-cod.patch
@@ -0,0 +1,88 @@
+From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+Subject: cxgb4: move Tx/Rx free pages collection to common code
+Patch-mainline: v4.19-rc1
+Git-commit: ae2a922fae023164b3e0de62db3a2e6e93305c2e
+References: bsc#1127371
+
+This information needs to be collected in vmcore device dump as well.
+So, move to common code.
+
+Fixes: fa145d5dfd61 ("cxgb4: display number of rx and tx pages free")
+Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h | 2 ++
+ drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c | 10 ++++++++++
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 11 ++---------
+ 3 files changed, 14 insertions(+), 9 deletions(-)
+
+--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
++++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
+@@ -140,6 +140,8 @@ struct cudbg_meminfo {
+ u32 loopback_used[NCHAN];
+ u32 loopback_alloc[NCHAN];
+ u32 p_structs_free_cnt;
++ u32 free_rx_cnt;
++ u32 free_tx_cnt;
+ };
+
+ struct cudbg_cim_pif_la {
+--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
+@@ -350,6 +350,11 @@ int cudbg_fill_meminfo(struct adapter *p
+ meminfo_buff->up_extmem2_hi = hi;
+
+ lo = t4_read_reg(padap, TP_PMM_RX_MAX_PAGE_A);
++ for (i = 0, meminfo_buff->free_rx_cnt = 0; i < 2; i++)
++ meminfo_buff->free_rx_cnt +=
++ FREERXPAGECOUNT_G(t4_read_reg(padap,
++ TP_FLM_FREE_RX_CNT_A));
++
+ meminfo_buff->rx_pages_data[0] = PMRXMAXPAGE_G(lo);
+ meminfo_buff->rx_pages_data[1] =
+ t4_read_reg(padap, TP_PMM_RX_PAGE_SIZE_A) >> 10;
+@@ -357,6 +362,11 @@ int cudbg_fill_meminfo(struct adapter *p
+
+ lo = t4_read_reg(padap, TP_PMM_TX_MAX_PAGE_A);
+ hi = t4_read_reg(padap, TP_PMM_TX_PAGE_SIZE_A);
++ for (i = 0, meminfo_buff->free_tx_cnt = 0; i < 4; i++)
++ meminfo_buff->free_tx_cnt +=
++ FREETXPAGECOUNT_G(t4_read_reg(padap,
++ TP_FLM_FREE_TX_CNT_A));
++
+ meminfo_buff->tx_pages_data[0] = PMTXMAXPAGE_G(lo);
+ meminfo_buff->tx_pages_data[1] =
+ hi >= (1 << 20) ? (hi >> 20) : (hi >> 10);
+--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+@@ -2852,7 +2852,6 @@ static int meminfo_show(struct seq_file
+ {
+ static const char * const memory[] = { "EDC0:", "EDC1:", "MC:",
+ "MC0:", "MC1:", "HMA:"};
+- unsigned int free_rx_cnt, free_tx_cnt;
+ struct adapter *adap = seq->private;
+ struct cudbg_meminfo meminfo;
+ int i, rc;
+@@ -2884,18 +2883,12 @@ static int meminfo_show(struct seq_file
+ mem_region_show(seq, "uP Extmem2:", meminfo.up_extmem2_lo,
+ meminfo.up_extmem2_hi);
+
+- for (i = 0, free_rx_cnt = 0; i < 2; i++)
+- free_rx_cnt += FREERXPAGECOUNT_G
+- (t4_read_reg(adap, TP_FLM_FREE_RX_CNT_A));
+ seq_printf(seq, "\n%u Rx pages (%u free) of size %uKiB for %u channels\n",
+- meminfo.rx_pages_data[0], free_rx_cnt,
++ meminfo.rx_pages_data[0], meminfo.free_rx_cnt,
+ meminfo.rx_pages_data[1], meminfo.rx_pages_data[2]);
+
+- for (i = 0, free_tx_cnt = 0; i < 4; i++)
+- free_tx_cnt += FREETXPAGECOUNT_G
+- (t4_read_reg(adap, TP_FLM_FREE_TX_CNT_A));
+ seq_printf(seq, "%u Tx pages (%u free) of size %u%ciB for %u channels\n",
+- meminfo.tx_pages_data[0], free_tx_cnt,
++ meminfo.tx_pages_data[0], meminfo.free_tx_cnt,
+ meminfo.tx_pages_data[1], meminfo.tx_pages_data[2],
+ meminfo.tx_pages_data[3]);
+
diff --git a/patches.fixes/0001-cxgb4-use-FW_PORT_ACTION_L1_CFG32-for-32-bit-capabil.patch b/patches.fixes/0001-cxgb4-use-FW_PORT_ACTION_L1_CFG32-for-32-bit-capabil.patch
new file mode 100644
index 0000000000..4152cf1f3e
--- /dev/null
+++ b/patches.fixes/0001-cxgb4-use-FW_PORT_ACTION_L1_CFG32-for-32-bit-capabil.patch
@@ -0,0 +1,49 @@
+From: Ganesh Goudar <ganeshgr@chelsio.com>
+Subject: cxgb4: cxgb4: use FW_PORT_ACTION_L1_CFG32 for 32 bit capability
+Patch-mainline: v4.20-rc1
+Git-commit: a657dbf61731704104fd749d68e3e78f0b4b28e9
+References: bsc#1127371
+
+when 32 bit port capability is in use, use FW_PORT_ACTION_L1_CFG32
+rather than FW_PORT_ACTION_L1_CFG.
+
+Signed-off-by: Casey Leedom <leedom@chelsio.com>
+Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+index f85eab57e9e1..cb523949c812 100644
+--- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
++++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+@@ -4204,6 +4204,7 @@ int t4_link_l1cfg_core(struct adapter *adapter, unsigned int mbox,
+ */
+ int t4_restart_aneg(struct adapter *adap, unsigned int mbox, unsigned int port)
+ {
++ unsigned int fw_caps = adap->params.fw_caps_support;
+ struct fw_port_cmd c;
+
+ memset(&c, 0, sizeof(c));
+@@ -4211,9 +4212,14 @@ int t4_restart_aneg(struct adapter *adap, unsigned int mbox, unsigned int port)
+ FW_CMD_REQUEST_F | FW_CMD_EXEC_F |
+ FW_PORT_CMD_PORTID_V(port));
+ c.action_to_len16 =
+- cpu_to_be32(FW_PORT_CMD_ACTION_V(FW_PORT_ACTION_L1_CFG) |
++ cpu_to_be32(FW_PORT_CMD_ACTION_V(fw_caps == FW_CAPS16
++ ? FW_PORT_ACTION_L1_CFG
++ : FW_PORT_ACTION_L1_CFG32) |
+ FW_LEN16(c));
+- c.u.l1cfg.rcap = cpu_to_be32(FW_PORT_CAP32_ANEG);
++ if (fw_caps == FW_CAPS16)
++ c.u.l1cfg.rcap = cpu_to_be32(FW_PORT_CAP_ANEG);
++ else
++ c.u.l1cfg32.rcap32 = cpu_to_be32(FW_PORT_CAP32_ANEG);
+ return t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL);
+ }
+
+--
+2.12.3
+
diff --git a/patches.fixes/0001-iw_cxgb4-cq-qp-mask-depends-on-bar2-pages-in-a-host-.patch b/patches.fixes/0001-iw_cxgb4-cq-qp-mask-depends-on-bar2-pages-in-a-host-.patch
new file mode 100644
index 0000000000..543aec85e1
--- /dev/null
+++ b/patches.fixes/0001-iw_cxgb4-cq-qp-mask-depends-on-bar2-pages-in-a-host-.patch
@@ -0,0 +1,56 @@
+From: Raju Rangoju <rajur@chelsio.com>
+Subject: iw_cxgb4: cq/qp mask depends on bar2 pages in a host page
+Patch-mainline: v5.0-rc8
+Git-commit: f09ef134a7ca3f0d2ce485a757f5b79809ebb803
+References: bsc#1127371
+
+Adjust the cq/qp mask based on the number of bar2 pages in a host page.
+
+For user-mode rdma, the granularity of the BAR2 memory mapped to a user
+rdma process during queue allocation must be based on the host page
+size. The lld attributes udb_density and ucq_density are used to figure
+out how many sge contexts are in a bar2 page. So the rdev->qpmask and
+rdev->cqmask in iw_cxgb4 need to now be adjusted based on how many sge
+bar2 pages are in a host page.
+
+Otherwise the device fails to work on non 4k page size systems.
+
+Fixes: 2391b0030e24 ("cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size")
+Signed-off-by: Raju Rangoju <rajur@chelsio.com>
+Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
+Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
+---
+ drivers/infiniband/hw/cxgb4/device.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+--- a/drivers/infiniband/hw/cxgb4/device.c
++++ b/drivers/infiniband/hw/cxgb4/device.c
+@@ -781,6 +781,7 @@ void c4iw_init_dev_ucontext(struct c4iw_
+ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
+ {
+ int err;
++ unsigned int factor;
+
+ c4iw_init_dev_ucontext(rdev, &rdev->uctx);
+
+@@ -804,8 +805,18 @@ static int c4iw_rdev_open(struct c4iw_rd
+ return -EINVAL;
+ }
+
+- rdev->qpmask = rdev->lldi.udb_density - 1;
+- rdev->cqmask = rdev->lldi.ucq_density - 1;
++ /* This implementation requires a sge_host_page_size <= PAGE_SIZE. */
++ if (rdev->lldi.sge_host_page_size > PAGE_SIZE) {
++ pr_err("%s: unsupported sge host page size %u\n",
++ pci_name(rdev->lldi.pdev),
++ rdev->lldi.sge_host_page_size);
++ return -EINVAL;
++ }
++
++ factor = PAGE_SIZE / rdev->lldi.sge_host_page_size;
++ rdev->qpmask = (rdev->lldi.udb_density * factor) - 1;
++ rdev->cqmask = (rdev->lldi.ucq_density * factor) - 1;
++
+ pr_debug("dev %s stag start 0x%0x size 0x%0x num stags %d pbl start 0x%0x size 0x%0x rq start 0x%0x size 0x%0x qp qid start %u size %u cq qid start %u size %u\n",
+ pci_name(rdev->lldi.pdev), rdev->lldi.vr->stag.start,
+ rdev->lldi.vr->stag.size, c4iw_num_stags(rdev),
diff --git a/patches.fixes/CIFS-fix-POSIX-lock-leak-and-invalid-ptr-deref.patch b/patches.fixes/CIFS-fix-POSIX-lock-leak-and-invalid-ptr-deref.patch
new file mode 100644
index 0000000000..39920ae48f
--- /dev/null
+++ b/patches.fixes/CIFS-fix-POSIX-lock-leak-and-invalid-ptr-deref.patch
@@ -0,0 +1,148 @@
+From bc31d0cdcfbadb6258b45db97e93b1c83822ba33 Mon Sep 17 00:00:00 2001
+From: Aurelien Aptel <aaptel@suse.com>
+Date: Thu, 14 Mar 2019 18:44:16 +0100
+Subject: [PATCH] CIFS: fix POSIX lock leak and invalid ptr deref
+Git-commit: bc31d0cdcfbadb6258b45db97e93b1c83822ba33
+Patch-mainline: v5.1-rc1
+References: bsc#1114542
+
+We have a customer reporting crashes in lock_get_status() with many
+"Leaked POSIX lock" messages preceeding the crash.
+
+ Leaked POSIX lock on dev=0x0:0x56 ...
+ Leaked POSIX lock on dev=0x0:0x56 ...
+ Leaked POSIX lock on dev=0x0:0x56 ...
+ Leaked POSIX lock on dev=0x0:0x53 ...
+ Leaked POSIX lock on dev=0x0:0x53 ...
+ Leaked POSIX lock on dev=0x0:0x53 ...
+ Leaked POSIX lock on dev=0x0:0x53 ...
+ POSIX: fl_owner=ffff8900e7b79380 fl_flags=0x1 fl_type=0x1 fl_pid=20709
+ Leaked POSIX lock on dev=0x0:0x4b ino...
+ Leaked locks on dev=0x0:0x4b ino=0xf911400000029:
+ POSIX: fl_owner=ffff89f41c870e00 fl_flags=0x1 fl_type=0x1 fl_pid=19592
+ stack segment: 0000 [#1] SMP
+ Modules linked in: binfmt_misc msr tcp_diag udp_diag inet_diag unix_diag af_packet_diag netlink_diag rpcsec_gss_krb5 arc4 ecb auth_rpcgss nfsv4 md4 nfs nls_utf8 lockd grace cifs sunrpc ccm dns_resolver fscache af_packet iscsi_ibft iscsi_boot_sysfs vmw_vsock_vmci_transport vsock xfs libcrc32c sb_edac edac_core crct10dif_pclmul crc32_pclmul ghash_clmulni_intel drbg ansi_cprng vmw_balloon aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd joydev pcspkr vmxnet3 i2c_piix4 vmw_vmci shpchp fjes processor button ac btrfs xor raid6_pq sr_mod cdrom ata_generic sd_mod ata_piix vmwgfx crc32c_intel drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm serio_raw ahci libahci drm libata vmw_pvscsi sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua scsi_mod autofs4
+
+ Supported: Yes
+ CPU: 6 PID: 28250 Comm: lsof Not tainted 4.4.156-94.64-default #1
+ Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/05/2016
+ task: ffff88a345f28740 ti: ffff88c74005c000 task.ti: ffff88c74005c000
+ RIP: 0010:[<ffffffff8125dcab>] [<ffffffff8125dcab>] lock_get_status+0x9b/0x3b0
+ RSP: 0018:ffff88c74005fd90 EFLAGS: 00010202
+ RAX: ffff89bde83e20ae RBX: ffff89e870003d18 RCX: 0000000049534f50
+ RDX: ffffffff81a3541f RSI: ffffffff81a3544e RDI: ffff89bde83e20ae
+ RBP: 0026252423222120 R08: 0000000020584953 R09: 000000000000ffff
+ R10: 0000000000000000 R11: ffff88c74005fc70 R12: ffff89e5ca7b1340
+ R13: 00000000000050e5 R14: ffff89e870003d30 R15: ffff89e5ca7b1340
+ FS: 00007fafd64be800(0000) GS:ffff89f41fd00000(0000) knlGS:0000000000000000
+ CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+ CR2: 0000000001c80018 CR3: 000000a522048000 CR4: 0000000000360670
+ DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+ DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
+ Stack:
+ 0000000000000208 ffffffff81a3d6b6 ffff89e870003d30 ffff89e870003d18
+ ffff89e5ca7b1340 ffff89f41738d7c0 ffff89e870003d30 ffff89e5ca7b1340
+ ffffffff8125e08f 0000000000000000 ffff89bc22b67d00 ffff88c74005ff28
+ Call Trace:
+ [<ffffffff8125e08f>] locks_show+0x2f/0x70
+ [<ffffffff81230ad1>] seq_read+0x251/0x3a0
+ [<ffffffff81275bbc>] proc_reg_read+0x3c/0x70
+ [<ffffffff8120e456>] __vfs_read+0x26/0x140
+ [<ffffffff8120e9da>] vfs_read+0x7a/0x120
+ [<ffffffff8120faf2>] SyS_read+0x42/0xa0
+ [<ffffffff8161cbc3>] entry_SYSCALL_64_fastpath+0x1e/0xb7
+
+When Linux closes a FD (close(), close-on-exec, dup2(), ...) it calls
+filp_close() which also removes all posix locks.
+
+The lock struct is initialized like so in filp_close() and passed
+down to cifs
+
+ ...
+ lock.fl_type = F_UNLCK;
+ lock.fl_flags = FL_POSIX | FL_CLOSE;
+ lock.fl_start = 0;
+ lock.fl_end = OFFSET_MAX;
+ ...
+
+Note the FL_CLOSE flag, which hints the VFS code that this unlocking
+is done for closing the fd.
+
+filp_close()
+ locks_remove_posix(filp, id);
+ vfs_lock_file(filp, F_SETLK, &lock, NULL);
+ return filp->f_op->lock(filp, cmd, fl) => cifs_lock()
+ rc = cifs_setlk(file, flock, type, wait_flag, posix_lck, lock, unlock, xid);
+ rc = server->ops->mand_unlock_range(cfile, flock, xid);
+ if (flock->fl_flags & FL_POSIX && !rc)
+ rc = locks_lock_file_wait(file, flock)
+
+Notice how we don't call locks_lock_file_wait() which does the
+generic VFS lock/unlock/wait work on the inode if rc != 0.
+
+If we are closing the handle, the SMB server is supposed to remove any
+locks associated with it. Similarly, cifs.ko frees and wakes up any
+lock and lock waiter when closing the file:
+
+cifs_close()
+ cifsFileInfo_put(file->private_data)
+ /*
+ * Delete any outstanding lock records. We'll lose them when the file
+ * is closed anyway.
+ */
+ down_write(&cifsi->lock_sem);
+ list_for_each_entry_safe(li, tmp, &cifs_file->llist->locks, llist) {
+ list_del(&li->llist);
+ cifs_del_lock_waiters(li);
+ kfree(li);
+ }
+ list_del(&cifs_file->llist->llist);
+ kfree(cifs_file->llist);
+ up_write(&cifsi->lock_sem);
+
+So we can safely ignore unlocking failures in cifs_lock() if they
+happen with the FL_CLOSE flag hint set as both the server and the
+client take care of it during the actual closing.
+
+This is not a proper fix for the unlocking failure but it's safe and
+it seems to prevent the lock leakages and crashes the customer
+experiences.
+
+Signed-off-by: Aurelien Aptel <aaptel@suse.com>
+Signed-off-by: NeilBrown <neil@brown.name>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Acked-by: Pavel Shilovsky <pshilov@microsoft.com>
+Acked-by: Paulo Alcantara <palcantara@suse.de>
+---
+ fs/cifs/file.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/fs/cifs/file.c b/fs/cifs/file.c
+index 4c144c1f50eb..2a6d20c0ce02 100644
+--- a/fs/cifs/file.c
++++ b/fs/cifs/file.c
+@@ -1645,8 +1645,20 @@ cifs_setlk(struct file *file, struct file_lock *flock, __u32 type,
+ rc = server->ops->mand_unlock_range(cfile, flock, xid);
+
+ out:
+- if (flock->fl_flags & FL_POSIX && !rc)
++ if (flock->fl_flags & FL_POSIX) {
++ /*
++ * If this is a request to remove all locks because we
++ * are closing the file, it doesn't matter if the
++ * unlocking failed as both cifs.ko and the SMB server
++ * remove the lock on file close
++ */
++ if (rc) {
++ cifs_dbg(VFS, "%s failed rc=%d\n", __func__, rc);
++ if (!(flock->fl_flags & FL_CLOSE))
++ return rc;
++ }
+ rc = locks_lock_file_wait(file, flock);
++ }
+ return rc;
+ }
+
+--
+2.21.0
+
diff --git a/patches.kabi/kabi-cxgb4-MU.patch b/patches.kabi/kabi-cxgb4-MU.patch
index 68d6a5861c..7c5b83e2d6 100644
--- a/patches.kabi/kabi-cxgb4-MU.patch
+++ b/patches.kabi/kabi-cxgb4-MU.patch
@@ -7,8 +7,8 @@ Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 30 +++++++++++++++++++------
- drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 11 +++++++--
- 2 files changed, 32 insertions(+), 9 deletions(-)
+ drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 13 ++++++++--
+ 2 files changed, 33 insertions(+), 10 deletions(-)
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
@@ -52,7 +52,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
};
/* State needed to monitor the forward progress of SGE Ingress DMA activities
-@@ -734,12 +740,14 @@ struct sge_eth_txq { /* s
+@@ -741,12 +747,14 @@ struct sge_eth_txq { /* s
#ifdef CONFIG_CHELSIO_T4_DCB
u8 dcb_prio; /* DCB Priority bound to queue */
#endif
@@ -69,7 +69,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
} ____cacheline_aligned_in_smp;
struct sge_uld_txq { /* state for an SGE offload Tx queue */
-@@ -796,14 +804,12 @@ struct sge {
+@@ -803,14 +811,12 @@ struct sge {
u16 nqs_per_uld; /* # of Rx queues per ULD */
u16 timer_val[SGE_NTIMERS];
u8 counter_val[SGE_NCOUNTERS];
@@ -84,7 +84,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
struct sge_idma_monitor_state idma_monitor;
unsigned int egr_start;
unsigned int egr_sz;
-@@ -816,6 +822,10 @@ struct sge {
+@@ -823,6 +829,10 @@ struct sge {
unsigned long *blocked_fl;
struct timer_list rx_timer; /* refills starving FLs */
struct timer_list tx_timer; /* checks Tx queues */
@@ -95,7 +95,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
};
#define for_each_ethrxq(sge, i) for (i = 0; i < (sge)->ethqsets; i++)
-@@ -860,7 +870,9 @@ struct vf_info {
+@@ -867,7 +877,9 @@ struct vf_info {
unsigned char vf_mac_addr[ETH_ALEN];
unsigned int tx_rate;
bool pf_set_mac;
@@ -105,7 +105,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
};
enum {
-@@ -893,7 +905,6 @@ struct adapter {
+@@ -900,7 +912,6 @@ struct adapter {
unsigned int flags;
unsigned int adap_idx;
enum chip_type chip;
@@ -113,7 +113,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
int msg_enable;
__be16 vxlan_port;
-@@ -950,7 +961,6 @@ struct adapter {
+@@ -957,7 +968,6 @@ struct adapter {
struct work_struct tid_release_task;
struct work_struct db_full_task;
struct work_struct db_drop_task;
@@ -121,7 +121,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
bool tid_release_task_busy;
/* lock for mailbox cmd list */
-@@ -989,6 +999,11 @@ struct adapter {
+@@ -996,6 +1006,11 @@ struct adapter {
/* Ethtool Dump */
struct ethtool_dump eth_dump;
@@ -133,7 +133,7 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
/* HMA */
struct hma_data hma;
-@@ -996,6 +1011,7 @@ struct adapter {
+@@ -1003,6 +1018,7 @@ struct adapter {
/* Dump buffer for collecting logs in kdump kernel */
struct vmcoredd_data vmcoredd;
@@ -172,13 +172,22 @@ Signed-off-by: Denis Kirjanov <dkirjanov@suse.com>
};
struct chcr_stats_debug {
-@@ -352,8 +357,10 @@ struct cxgb4_lld_info {
+@@ -329,7 +334,6 @@ struct cxgb4_lld_info {
+ unsigned int cclk_ps; /* Core clock period in psec */
+ unsigned short udb_density; /* # of user DB/page */
+ unsigned short ucq_density; /* # of user CQs/page */
+- unsigned int sge_host_page_size; /* SGE host page size */
+ unsigned short filt_mode; /* filter optional components */
+ unsigned short tx_modq[NCHAN]; /* maps each tx channel to a */
+ /* scheduler queue */
+@@ -353,8 +357,11 @@ struct cxgb4_lld_info {
void **iscsi_ppm; /* iscsi page pod manager */
int nodeid; /* device numa node id */
bool fr_nsmr_tpte_wr_support; /* FW supports FR_NSMR_TPTE_WR */
+#ifndef __GENKSYMS__
bool write_w_imm_support; /* FW supports WRITE_WITH_IMMEDIATE */
bool write_cmpl_support; /* FW supports WRITE_CMPL WR */
++ unsigned int sge_host_page_size; /* SGE host page size */
+#endif
};
diff --git a/series.conf b/series.conf
index 09095cefd3..a5403ef1a6 100644
--- a/series.conf
+++ b/series.conf
@@ -17615,6 +17615,7 @@
patches.drivers/qed-off-by-one-in-qed_parse_mcp_trace_buf.patch
patches.drivers/qmi_wwan-add-support-for-Quectel-EG91
patches.suse/ipv4-Return-EINVAL-when-ping_group_range-sysctl-does.patch
+ patches.fixes/0001-cxgb4-assume-flash-part-size-to-be-4MB-if-it-can-t-b.patch
patches.drivers/net-sched-act_tunnel_key-fix-NULL-dereference-when-g.patch
patches.suse/net-ipv4-Set-oif-in-fib_compute_spec_dst.patch
patches.suse/net-diag-Don-t-double-free-TCP_NEW_SYN_RECV-sockets-.patch
@@ -18135,6 +18136,8 @@
patches.drivers/net-hns3-Fix-comments-for-hclge_get_ring_chain_from_.patch
patches.fixes/0001-cxgb4-do-not-return-DUPLEX_UNKNOWN-when-link-is-down.patch
patches.drivers/liquidio-fix-hang-when-re-binding-VF-host-drv-after-.patch
+ patches.fixes/0001-cxgb4-collect-ASIC-LA-dumps-from-ULP-TX.patch
+ patches.fixes/0001-cxgb4-display-number-of-rx-and-tx-pages-free.patch
patches.drivers/qed-Add-qed-APIs-for-PHY-module-query.patch
patches.drivers/qede-Add-driver-callbacks-for-eeprom-module-query.patch
patches.drivers/net-hns3-Standardize-the-handle-of-return-value.patch
@@ -18145,6 +18148,8 @@
patches.drivers/rndis_wlan-potential-buffer-overflow-in-rndis_wlan_a
patches.drivers/libertas-fix-suspend-and-resume-for-SDIO-connected-c
patches.drivers/mac80211-restrict-delayed-tailroom-needed-decrement.patch
+ patches.fixes/0001-cxgb4-collect-number-of-free-PSTRUCT-page-pointers.patch
+ patches.fixes/0001-cxgb4-move-Tx-Rx-free-pages-collection-to-common-cod.patch
patches.drivers/ixgbe-Reorder-Tx-Rx-shutdown-to-reduce-time-needed-t.patch
patches.drivers/ixgbe-Refactor-queue-disable-logic-to-take-completio.patch
patches.suse/net-ethernet-mvneta-Fix-napi-structure-mixup-on-arma.patch
@@ -18188,6 +18193,7 @@
patches.drivers/net-hns3-Fix-for-information-of-phydev-lost-problem-.patch
patches.drivers/net-hns3-Fix-for-phy-link-issue-when-using-marvell-p.patch
patches.drivers/net-hns3-Fix-desc-num-set-to-default-when-setting-ch.patch
+ patches.fixes/0001-cxgb4-Add-new-T5-PCI-device-ids-0x50af-and-0x50b0.patch
patches.fixes/xen-netfront-fix-warn-message-as-irq-device-name-has.patch
patches.suse/msft-hv-1749-hv-netvsc-Fix-NULL-dereference-at-single-queue-mode-.patch
patches.drivers/crypto-vmac-require-a-block-cipher-with-128-bit-bloc
@@ -19282,6 +19288,7 @@
patches.drivers/0001-iwlwifi-fix-LED-command-capability-bit.patch
patches.drivers/iwlwifi-mvm-Allow-TKIP-for-AP-mode.patch
patches.drivers/Bluetooth-btbcm-Add-entry-for-BCM4335C0-UART-bluetoo.patch
+ patches.fixes/0001-cxgb4-use-FW_PORT_ACTION_L1_CFG32-for-32-bit-capabil.patch
patches.drivers/net-hns3-Fix-for-rx-vlan-id-handle-to-support-Rev-0x.patch
patches.drivers/iwlwifi-mvm-check-for-n_profiles-validity-in-EWRD-AC.patch
patches.drivers/iwlwifi-mvm-clear-HW_RESTART_REQUESTED-when-stopping.patch
@@ -20279,9 +20286,11 @@
patches.fixes/selinux-always-allow-mounting-submounts.patch
patches.fixes/e1000e-allow-non-monotonic-SYSTIM-readings.patch
patches.drivers/net-bcmgenet-return-correct-value-ret-from-bcmgenet_.patch
+ patches.fixes/0001-cxgb4-Add-new-T6-PCI-device-ids-0x608a.patch
patches.fixes/ptp-check-gettime64-return-code-in-PTP_SYS_OFFSET-io.patch
patches.suse/PCI-add-USR-vendor-id-and-use-it-in-r8169-and-w6692-.patch
patches.drivers/usbnet-smsc95xx-fix-rx-packet-alignment.patch
+ patches.fixes/0001-cxgb4-Remove-SGE_HOST_PAGE_SIZE-dependency-on-page-s.patch
patches.drivers/net-bcmgenet-code-movement.patch
patches.drivers/net-bcmgenet-abort-suspend-on-error.patch
patches.suse/r8169-use-PCI_VDEVICE-macro.patch
@@ -20865,6 +20874,8 @@
patches.fixes/ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch
patches.drivers/clk-sunxi-ng-v3s-Fix-TCON-reset-de-assert-bit.patch
patches.drivers/clk-sunxi-A31-Fix-wrong-AHB-gate-number.patch
+ patches.fixes/0001-cxgb4-Export-sge_host_page_size-to-ulds.patch
+ patches.fixes/0001-iw_cxgb4-cq-qp-mask-depends-on-bar2-pages-in-a-host-.patch
patches.suse/kallsyms-handle-too-long-symbols-in-kallsyms-c.patch
patches.fixes/KEYS-user-Align-the-payload-buffer.patch
patches.fixes/KEYS-always-initialize-keyring_index_key-desc_len.patch
@@ -20945,6 +20956,7 @@
patches.drivers/ath9k-Avoid-OF-no-EEPROM-quirks-without-qca-no-eepro.patch
patches.drivers/iwlwifi-pcie-fix-emergency-path.patch
patches.fixes/0001-iwlwifi-pcie-fix-TX-while-flushing.patch
+ patches.drivers/brcmfmac-assure-SSID-length-from-firmware-is-limited.patch
patches.drivers/brcmfmac-add-subtype-check-for-event-handling-in-dat.patch
patches.drivers/libertas_tf-don-t-set-URB_ZERO_PACKET-on-IN-USB-tran.patch
patches.fixes/0001-mwifiex-don-t-advertise-IBSS-features-without-FW-sup.patch
@@ -21267,6 +21279,7 @@
patches.arch/kvm-call-kvm_arch_memslots_updated-before-updating-memslots
patches.arch/kvm-x86-mmu-detect-mmio-generation-wrap-in-any-address-space
patches.arch/kvm-x86-mmu-do-not-cache-mmio-accesses-while-memslots-are-in-flux
+ patches.fixes/CIFS-fix-POSIX-lock-leak-and-invalid-ptr-deref.patch
patches.fixes/It-s-wrong-to-add-len-to-sector_nr-in-raid10-reshape.patch
patches.fixes/md-Fix-failed-allocation-of-md_register_thread.patch
patches.fixes/nvme-fc-reject-reconnect-if-io-queue-count-is-reduce.patch
@@ -21384,6 +21397,7 @@
patches.drivers/ALSA-hda-Add-two-more-machines-to-the-power_save_bla.patch
patches.drivers/iommu-amd-set-exclusion-range-correctly
patches.arch/powerpc-vdso32-fix-CLOCK_MONOTONIC-on-PPC64.patch
+ patches.arch/svm-avic-fix-invalidate-logical-apic-id-entry
# davem/net
patches.drivers/ibmvnic-Enable-GRO.patch