Home Home > GIT Browse > openSUSE-15.1
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2019-08-20 07:38:27 +0200
committerKernel Build Daemon <kbuild@suse.de>2019-08-20 07:38:27 +0200
commit1074db8b29aa2b46cf1f4d5b9cf61ebbbba6a5eb (patch)
tree9fe8658d1a788e5fa6922dbc7be5c0a85d7e85e4
parent37159a078e6b2d830531774f1c8976b766981cd5 (diff)
parentd97ffa414f0c4e8c9f65ea5413990eb03e8acb4c (diff)
Merge branch 'SLE15-SP1' into openSUSE-15.1openSUSE-15.1
-rw-r--r--patches.arch/powerpc-nvdimm-Pick-nearby-online-node-if-the-device.patch148
-rw-r--r--patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch3
-rw-r--r--patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch27
-rw-r--r--patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch20
-rw-r--r--patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch59
-rw-r--r--patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch3
-rw-r--r--patches.drivers/0002-cpufreq-qoriq-add-support-for-lx2160a.patch38
-rw-r--r--patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch3
-rw-r--r--patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch15
-rw-r--r--patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch7
-rw-r--r--patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch3
-rw-r--r--patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch3
-rw-r--r--patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch3
-rw-r--r--patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch3
-rw-r--r--patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch5
-rw-r--r--patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch3
-rw-r--r--patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch3
-rw-r--r--patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch3
-rw-r--r--patches.drivers/ALSA-hda-realtek-Add-quirk-for-HP-Envy-x360.patch34
-rw-r--r--patches.drivers/ALSA-usb-audio-Fix-a-stack-buffer-overflow-bug-in-ch.patch135
-rw-r--r--patches.drivers/ALSA-usb-audio-Fix-an-OOB-bug-in-parse_audio_mixer_u.patch56
-rw-r--r--patches.drivers/ath10k-Drop-WARN_ON-s-that-always-trigger-during-sys.patch41
-rw-r--r--patches.drivers/ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch2
-rw-r--r--patches.drivers/bnx2x-Disable-multi-cos-feature.patch34
-rw-r--r--patches.drivers/bpf-sockmap-only-create-entry-if-ulp-is-not-already-.patch40
-rw-r--r--patches.drivers/bpf-sockmap-sock_map_delete-needs-to-use-xchg.patch69
-rw-r--r--patches.drivers/bpf-sockmap-synchronize_rcu-before-free-ing-map.patch30
-rw-r--r--patches.drivers/iommu-iova-remove-stale-cached32_node151
-rw-r--r--patches.drivers/mlxsw-spectrum-Fix-error-path-in-mlxsw_sp_module_ini.patch30
-rw-r--r--patches.drivers/net-fix-bpf_xdp_adjust_head-regression-for-generic-X.patch50
-rw-r--r--patches.drivers/net-mlx5-Fix-modify_cq_in-alignment.patch38
-rw-r--r--patches.drivers/net-mlx5e-always-initialize-frag-last_in_page.patch76
-rw-r--r--patches.drivers/net-mvpp2-Don-t-check-for-3-consecutive-Idle-frames-.patch34
-rw-r--r--patches.drivers/net-phylink-Fix-flow-control-for-fixed-link.patch55
-rw-r--r--patches.drivers/scsi-bfa-avoid-implicit-enum-conversion-in-bfad_im_post_vendor_event63
-rw-r--r--patches.drivers/scsi-bfa-bfa_fcs_lport-mark-expected-switch-fall-throughs48
-rw-r--r--patches.drivers/scsi-bfa-bfa_fcs_rport-mark-expected-switch-fall-throughs96
-rw-r--r--patches.drivers/scsi-bfa-bfa_ioc-mark-expected-switch-fall-throughs58
-rw-r--r--patches.drivers/scsi-bfa-clean-up-a-couple-of-indentation-issues40
-rw-r--r--patches.drivers/scsi-bfa-no-need-to-check-return-value-of-debugfs_create-functions72
-rw-r--r--patches.drivers/scsi-bfa-remove-scsiresult-macro97
-rw-r--r--patches.drivers/scsi-bfa-remove-unused-functions235
-rw-r--r--patches.drivers/scsi-bfa-use-dma_set_mask_and_coherent52
-rw-r--r--patches.drivers/scsi-bnx2fc-do-not-allow-both-a-cleanup-completion-and-abort-completion-for-the-same-request89
-rw-r--r--patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_rec40
-rw-r--r--patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_srr40
-rw-r--r--patches.drivers/scsi-bnx2fc-limit-the-io-size-according-to-the-fw-capability77
-rw-r--r--patches.drivers/scsi-bnx2fc-only-put-reference-to-io_req-in-bnx2fc_abts_cleanup-if-cleanup-times-out95
-rw-r--r--patches.drivers/scsi-bnx2fc-redo-setting-source-fcoe-mac109
-rw-r--r--patches.drivers/scsi-bnx2fc-separate-out-completion-flags-and-variables-for-abort-and-cleanup250
-rw-r--r--patches.drivers/scsi-bnx2fc-update-the-driver-version-to-2-12-1030
-rw-r--r--patches.drivers/sdhci-fujitsu-add-support-for-setting-the-CMD_DAT_DE.patch74
-rw-r--r--patches.drivers/spi-mem-fix-kernel-doc-for-spi_mem_dirmap_-read-writ.patch6
-rw-r--r--patches.drivers/tun-mark-small-packets-as-owned-by-the-tap-sock.patch70
-rw-r--r--patches.drivers/usb-typec-tcpm-Ignore-unsupported-unknown-alternate-.patch127
-rw-r--r--patches.drivers/usb-typec-tcpm-free-log-buf-memory-when-remove-debug.patch45
-rw-r--r--patches.drivers/usb-typec-tcpm-remove-tcpm-dir-if-no-children.patch44
-rw-r--r--patches.drm/drm-amd-display-Fix-dc_create-failure-handling-and-6.patch65
-rw-r--r--patches.drm/drm-amd-display-Increase-size-of-audios-array.patch48
-rw-r--r--patches.drm/drm-amd-display-Only-enable-audio-if-speaker-allocat.patch41
-rw-r--r--patches.drm/drm-amd-display-Wait-for-backlight-programming-compl.patch39
-rw-r--r--patches.drm/drm-amd-display-use-encoder-s-engine-id-to-find-matc.patch58
-rw-r--r--patches.fixes/scsi-bfa-fix-calls-to-dma_set_mask_and_coherent73
-rw-r--r--patches.fixes/virtio-s390-fix-race-on-airq_areas.patch49
-rw-r--r--series.conf78
65 files changed, 3417 insertions, 115 deletions
diff --git a/patches.arch/powerpc-nvdimm-Pick-nearby-online-node-if-the-device.patch b/patches.arch/powerpc-nvdimm-Pick-nearby-online-node-if-the-device.patch
new file mode 100644
index 0000000000..3681e42b6f
--- /dev/null
+++ b/patches.arch/powerpc-nvdimm-Pick-nearby-online-node-if-the-device.patch
@@ -0,0 +1,148 @@
+From e47b2f789da8b7fc1236cbf8e7a08641f74fc522 Mon Sep 17 00:00:00 2001
+From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
+Date: Mon, 29 Jul 2019 15:21:28 +0530
+Subject: [PATCH] powerpc/nvdimm: Pick nearby online node if the device node is
+ not online
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+References: bsc#1142685 ltc#179509 FATE#327775
+Patch-mainline: v5.3-rc3
+Git-commit: da1115fdbd6e86c62185cdd2b4bf7add39f2f82b
+
+Currently, nvdimm subsystem expects the device numa node for SCM device to be
+an online node. It also doesn't try to bring the device numa node online. Hence
+if we use a non-online numa node as device node we hit crashes like below. This
+is because we try to access uninitialized NODE_DATA in different code paths.
+
+cpu 0x0: Vector: 300 (Data Access) at [c0000000fac53170]
+ pc: c0000000004bbc50: ___slab_alloc+0x120/0xca0
+ lr: c0000000004bc834: __slab_alloc+0x64/0xc0
+ sp: c0000000fac53400
+ msr: 8000000002009033
+ dar: 73e8
+ dsisr: 80000
+ current = 0xc0000000fabb6d80
+ paca = 0xc000000003870000 irqmask: 0x03 irq_happened: 0x01
+ pid = 7, comm = kworker/u16:0
+Linux version 5.2.0-06234-g76bd729b2644 (kvaneesh@ltc-boston123) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #135 SMP Thu Jul 11 05:36:30 CDT 2019
+enter ? for help
+[link register ] c0000000004bc834 __slab_alloc+0x64/0xc0
+[c0000000fac53400] c0000000fac53480 (unreliable)
+[c0000000fac53500] c0000000004bc818 __slab_alloc+0x48/0xc0
+[c0000000fac53560] c0000000004c30a0 __kmalloc_node_track_caller+0x3c0/0x6b0
+[c0000000fac535d0] c000000000cfafe4 devm_kmalloc+0x74/0xc0
+[c0000000fac53600] c000000000d69434 nd_region_activate+0x144/0x560
+[c0000000fac536d0] c000000000d6b19c nd_region_probe+0x17c/0x370
+[c0000000fac537b0] c000000000d6349c nvdimm_bus_probe+0x10c/0x230
+[c0000000fac53840] c000000000cf3cc4 really_probe+0x254/0x4e0
+[c0000000fac538d0] c000000000cf429c driver_probe_device+0x16c/0x1e0
+[c0000000fac53950] c000000000cf0b44 bus_for_each_drv+0x94/0x130
+[c0000000fac539b0] c000000000cf392c __device_attach+0xdc/0x200
+[c0000000fac53a50] c000000000cf231c bus_probe_device+0x4c/0xf0
+[c0000000fac53a90] c000000000ced268 device_add+0x528/0x810
+[c0000000fac53b60] c000000000d62a58 nd_async_device_register+0x28/0xa0
+[c0000000fac53bd0] c0000000001ccb8c async_run_entry_fn+0xcc/0x1f0
+[c0000000fac53c50] c0000000001bcd9c process_one_work+0x46c/0x860
+[c0000000fac53d20] c0000000001bd4f4 worker_thread+0x364/0x5f0
+[c0000000fac53db0] c0000000001c7260 kthread+0x1b0/0x1c0
+[c0000000fac53e20] c00000000000b954 ret_from_kernel_thread+0x5c/0x68
+
+The patch tries to fix this by picking the nearest online node as the SCM node.
+This does have a problem of us losing the information that SCM node is
+equidistant from two other online nodes. If applications need to understand these
+fine-grained details we should express then like x86 does via
+/sys/devices/system/node/nodeX/accessY/initiators/
+
+With the patch we get
+
+ # numactl -H
+available: 2 nodes (0-1)
+node 0 cpus:
+node 0 size: 0 MB
+node 0 free: 0 MB
+node 1 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+node 1 size: 130865 MB
+node 1 free: 129130 MB
+node distances:
+node 0 1
+ 0: 10 20
+ 1: 20 10
+ # cat /sys/bus/nd/devices/region0/numa_node
+0
+ # dmesg | grep papr_scm
+[ 91.332305] papr_scm ibm,persistent-memory:ibm,pmemory@44104001: Region registered with target node 2 and online node 0
+
+[Note: we don't have target_node (8fc5c73554db0)]
+
+Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20190729095128.23707-1-aneesh.kumar@linux.ibm.com
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+---
+ arch/powerpc/platforms/pseries/papr_scm.c | 27 ++++++++++++++++++++++-
+ 1 file changed, 26 insertions(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
+index 889621acc25f..e3bcd03967dd 100644
+--- a/arch/powerpc/platforms/pseries/papr_scm.c
++++ b/arch/powerpc/platforms/pseries/papr_scm.c
+@@ -275,12 +275,32 @@ static const struct attribute_group *papr_scm_dimm_groups[] = {
+ NULL,
+ };
+
++static inline int papr_scm_node(int node)
++{
++ int min_dist = INT_MAX, dist;
++ int nid, min_node;
++
++ if ((node == NUMA_NO_NODE) || node_online(node))
++ return node;
++
++ min_node = first_online_node;
++ for_each_online_node(nid) {
++ dist = node_distance(node, nid);
++ if (dist < min_dist) {
++ min_dist = dist;
++ min_node = nid;
++ }
++ }
++ return min_node;
++}
++
+ static int papr_scm_nvdimm_init(struct papr_scm_priv *p)
+ {
+ struct device *dev = &p->pdev->dev;
+ struct nd_mapping_desc mapping;
+ struct nd_region_desc ndr_desc;
+ unsigned long dimm_flags;
++ int target_nid, online_nid;
+
+ p->bus_desc.ndctl = papr_scm_ndctl;
+ p->bus_desc.module = THIS_MODULE;
+@@ -319,7 +339,9 @@ static int papr_scm_nvdimm_init(struct papr_scm_priv *p)
+
+ memset(&ndr_desc, 0, sizeof(ndr_desc));
+ ndr_desc.attr_groups = region_attr_groups;
+- ndr_desc.numa_node = dev_to_node(&p->pdev->dev);
++ target_nid = dev_to_node(&p->pdev->dev);
++ online_nid = papr_scm_node(target_nid);
++ ndr_desc.numa_node = online_nid;
+ ndr_desc.res = &p->res;
+ ndr_desc.of_node = p->dn;
+ ndr_desc.provider_data = p;
+@@ -337,6 +359,9 @@ static int papr_scm_nvdimm_init(struct papr_scm_priv *p)
+ ndr_desc.res, p->dn);
+ goto err;
+ }
++ if (target_nid != online_nid)
++ dev_info(dev, "Region registered with target node %d and online node %d",
++ target_nid, online_nid);
+
+ return 0;
+
+--
+2.22.0
+
diff --git a/patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch b/patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch
index 9b87e3cb5e..88fbc4cc96 100644
--- a/patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch
+++ b/patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch
@@ -3,8 +3,7 @@ Date: Sun, 17 Feb 2019 11:54:14 +0800
Subject: ACPI / CPPC: Add a helper to get desired performance
Git-commit: 1757d05f3112acc5c0cdbcccad3afdee99655bf9
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: bsc#1126594
This patch add a helper to get the value of desired performance
diff --git a/patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch b/patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch
index b82c0196a3..9446cd4c06 100644
--- a/patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch
+++ b/patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch
@@ -1,29 +1,22 @@
-Date: Tue, 12 Mar 2019 09:50:19 +0800
From: Peng Ma <peng.ma@nxp.com>
-To: axboe@kernel.dk, robh+dt@kernel.org, mark.rutland@arm.com,
- shawnguo@kernel.org, leoyang.li@nxp.com
-Cc: linux-ide@vger.kernel.org, devicetree@vger.kernel.org,
- linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Peng Ma
- <peng.ma@nxp.com>
-Subject: [v7 3/3] ahci: qoriq: add lx2160 platforms support
-X-Mailer: git-send-email 2.14.1
+Date: Tue, 12 Mar 2019 09:50:19 +0800
+Subject: ahci: qoriq: add lx2160 platforms support
-Patch-mainline: Submitted, https://lkml.org/lkml/2019/4/8/291
+Git-commit: 2be8481a8a444bb36d1cddc47f05f00ac1cf703e
+Patch-mainline: v5.2-rc1
References: fate#326572
Lx2160a is a new introduced soc which supports ATA3.0
Signed-off-by: Peng Ma <peng.ma@nxp.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
---
-changed for V7:
- - no changed.
-
- drivers/ata/ahci_qoriq.c | 52 +++++++++++++++++++++++++++++++---------------
- 1 files changed, 35 insertions(+), 17 deletions(-)
+ drivers/ata/ahci_qoriq.c | 52 ++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 35 insertions(+), 17 deletions(-)
diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c
-index ce59253..08dbb86 100644
+index ce59253ec158..08dbb86c913e 100644
--- a/drivers/ata/ahci_qoriq.c
+++ b/drivers/ata/ahci_qoriq.c
@@ -58,6 +58,7 @@ enum ahci_qoriq_type {
@@ -43,7 +36,7 @@ index ce59253..08dbb86 100644
static const struct of_device_id ahci_qoriq_of_match[] = {
{ .compatible = "fsl,ls1021a-ahci", .data = (void *)AHCI_LS1021A},
{ .compatible = "fsl,ls1043a-ahci", .data = (void *)AHCI_LS1043A},
-@@ -74,6 +77,7 @@ struct ahci_qoriq_priv {
+@@ -74,6 +77,7 @@ static const struct of_device_id ahci_qoriq_of_match[] = {
{ .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A},
{ .compatible = "fsl,ls1088a-ahci", .data = (void *)AHCI_LS1088A},
{ .compatible = "fsl,ls2088a-ahci", .data = (void *)AHCI_LS2088A},
@@ -147,5 +140,5 @@ index ce59253..08dbb86 100644
rc = ahci_platform_enable_resources(hpriv);
--
-1.7.1
+2.11.0
diff --git a/patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch b/patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch
index 9240cb9ea9..cd6997aec8 100644
--- a/patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch
+++ b/patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch
@@ -1,9 +1,9 @@
-From a6aad1b953a998284f368ca6f726a424e479ad60 Mon Sep 17 00:00:00 2001
From: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
-Date: Mon, 17 Sep 2018 16:00:20 +0530
-Subject: [PATCH 1/3] clk: qoriq: increase array size of cmux_to_group
+Date: Thu, 25 Apr 2019 09:47:48 +0000
+Subject: clk: qoriq: increase array size of cmux_to_group
-Patch-mainline: Submitted, https://patchwork.kernel.org/patch/10658889/
+Git-commit: 42614b5bd9549747af5c5dbef59397b0423f1101
+Patch-mainline: v5.2-rc1
References: fate#326572
Increase size of cmux_to_group array, to accomdate entry of
@@ -13,25 +13,27 @@ Added -1, terminated, entry for 4080_cmux_grpX.
Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
+Acked-by: Scott Wood <oss@buserror.net>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
---
drivers/clk/clk-qoriq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/clk-qoriq.c b/drivers/clk/clk-qoriq.c
-index 1ad82240e..d2dbebf23 100644
+index cd68220fd581..4739a47ec8bd 100644
--- a/drivers/clk/clk-qoriq.c
+++ b/drivers/clk/clk-qoriq.c
-@@ -79,7 +79,7 @@ struct clockgen_chipinfo {
+@@ -80,7 +80,7 @@ struct clockgen_chipinfo {
const struct clockgen_muxinfo *cmux_groups[2];
const struct clockgen_muxinfo *hwaccel[NUM_HWACCEL];
void (*init_periph)(struct clockgen *cg);
- int cmux_to_group[NUM_CMUX]; /* -1 terminates if fewer than NUM_CMUX */
-+ int cmux_to_group[NUM_CMUX+1]; /* array should be -1 terminated */
++ int cmux_to_group[NUM_CMUX + 1]; /* array should be -1 terminated */
u32 pll_mask; /* 1 << n bit set if PLL n is valid */
u32 flags; /* CG_xxx */
};
-@@ -601,7 +601,7 @@ static const struct clockgen_chipinfo chipinfo[] = {
+@@ -669,7 +669,7 @@ static const struct clockgen_chipinfo chipinfo[] = {
&p4080_cmux_grp1, &p4080_cmux_grp2
},
.cmux_to_group = {
@@ -41,5 +43,5 @@ index 1ad82240e..d2dbebf23 100644
.pll_mask = 0x1f,
},
--
-2.16.3
+2.11.0
diff --git a/patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch b/patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch
index d1ba848fec..a95c9bdb3d 100644
--- a/patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch
+++ b/patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch
@@ -1,34 +1,34 @@
-From c81ee70b57defd8c3fefb5acf3c606affdf05cf0 Mon Sep 17 00:00:00 2001
-From: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
-Date: Mon, 17 Sep 2018 16:04:41 +0530
-Subject: [PATCH 2/3] clk: qoriq: Add clockgen support for lx2160a
+From: Vabhav Sharma <vabhav.sharma@nxp.com>
+Date: Fri, 26 Apr 2019 06:53:38 +0000
+Subject: clk: qoriq: add support for lx2160a
-Patch-mainline: Submitted, https://patchwork.kernel.org/patch/10658909/
+Git-commit: 78a5ba8f9126047ca2478fdbbd1d4ab4d97d30e6
+Patch-mainline: v5.3-rc1
References: fate#326572
-Add clockgen support for lx2160a.
-Added entry for compat 'fsl,lx2160a-clockgen'.
+Add clockgen support and configuration for NXP SoC lx2160a
+with compatible property as "fsl,lx2160a-clockgen".
Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
+Acked-by: Scott Wood <oss@buserror.net>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
---
- drivers/clk/clk-qoriq.c | 12 ++++++++++++
- drivers/cpufreq/qoriq-cpufreq.c | 1 +
- 2 files changed, 13 insertions(+)
+ drivers/clk/clk-qoriq.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
diff --git a/drivers/clk/clk-qoriq.c b/drivers/clk/clk-qoriq.c
-index d2dbebf23..e082f706f 100644
+index 4739a47ec8bd..0dfac393588b 100644
--- a/drivers/clk/clk-qoriq.c
+++ b/drivers/clk/clk-qoriq.c
-@@ -569,6 +569,17 @@ static const struct clockgen_chipinfo chipinfo[] = {
- .pll_mask = 0x37,
+@@ -638,6 +638,17 @@ static const struct clockgen_chipinfo chipinfo[] = {
.flags = CG_VER3 | CG_LITTLE_ENDIAN,
},
-+ {
+ {
+ .compat = "fsl,lx2160a-clockgen",
+ .cmux_groups = {
+ &clockgen2_cmux_cga12, &clockgen2_cmux_cgb
@@ -39,29 +39,18 @@ index d2dbebf23..e082f706f 100644
+ .pll_mask = 0x37,
+ .flags = CG_VER3 | CG_LITTLE_ENDIAN,
+ },
- {
++ {
.compat = "fsl,p2041-clockgen",
.guts_compat = "fsl,qoriq-device-config-1.0",
-@@ -1436,6 +1447,7 @@ CLK_OF_DECLARE(qoriq_clockgen_t1023, "fsl,t1023-clockgen", clockgen_init);
- CLK_OF_DECLARE(qoriq_clockgen_t1040, "fsl,t1040-clockgen", clockgen_init);
- CLK_OF_DECLARE(qoriq_clockgen_t2080, "fsl,t2080-clockgen", clockgen_init);
- CLK_OF_DECLARE(qoriq_clockgen_t4240, "fsl,t4240-clockgen", clockgen_init);
+ .init_periph = p2041_init_periph,
+@@ -1496,6 +1507,7 @@ CLK_OF_DECLARE(qoriq_clockgen_ls1043a, "fsl,ls1043a-clockgen", clockgen_init);
+ CLK_OF_DECLARE(qoriq_clockgen_ls1046a, "fsl,ls1046a-clockgen", clockgen_init);
+ CLK_OF_DECLARE(qoriq_clockgen_ls1088a, "fsl,ls1088a-clockgen", clockgen_init);
+ CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init);
+CLK_OF_DECLARE(qoriq_clockgen_lx2160a, "fsl,lx2160a-clockgen", clockgen_init);
-
- /* Legacy nodes */
- CLK_OF_DECLARE(qoriq_sysclk_1, "fsl,qoriq-sysclk-1.0", sysclk_init);
-diff --git a/drivers/cpufreq/qoriq-cpufreq.c b/drivers/cpufreq/qoriq-cpufreq.c
-index e32f0acc5..4f3f79481 100644
---- a/drivers/cpufreq/qoriq-cpufreq.c
-+++ b/drivers/cpufreq/qoriq-cpufreq.c
-@@ -308,6 +308,7 @@ static const struct of_device_id node_matches[] __initconst = {
- { .compatible = "fsl,ls1046a-clockgen", },
- { .compatible = "fsl,ls1088a-clockgen", },
- { .compatible = "fsl,ls2080a-clockgen", },
-+ { .compatible = "fsl,lx2160a-clockgen", },
- { .compatible = "fsl,p4080-clockgen", },
- { .compatible = "fsl,qoriq-clockgen-1.0", },
- { .compatible = "fsl,qoriq-clockgen-2.0", },
+ CLK_OF_DECLARE(qoriq_clockgen_p2041, "fsl,p2041-clockgen", clockgen_init);
+ CLK_OF_DECLARE(qoriq_clockgen_p3041, "fsl,p3041-clockgen", clockgen_init);
+ CLK_OF_DECLARE(qoriq_clockgen_p4080, "fsl,p4080-clockgen", clockgen_init);
--
-2.16.3
+2.11.0
diff --git a/patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch b/patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch
index 0fc6779609..f1c8b6f5a2 100644
--- a/patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch
+++ b/patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch
@@ -3,8 +3,7 @@ Date: Sun, 17 Feb 2019 11:54:15 +0800
Subject: cpufreq / cppc: Work around for Hisilicon CPPC cpufreq
Git-commit: 6c8d750f9784cef32a8cffdad74c8a351b4ca3a6
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: bsc#1126594
Hisilicon chips do not support delivered performance counter register
diff --git a/patches.drivers/0002-cpufreq-qoriq-add-support-for-lx2160a.patch b/patches.drivers/0002-cpufreq-qoriq-add-support-for-lx2160a.patch
new file mode 100644
index 0000000000..9bec770b16
--- /dev/null
+++ b/patches.drivers/0002-cpufreq-qoriq-add-support-for-lx2160a.patch
@@ -0,0 +1,38 @@
+From: Vabhav Sharma <vabhav.sharma@nxp.com>
+Date: Fri, 26 Apr 2019 06:55:55 +0000
+Subject: cpufreq: qoriq: add support for lx2160a
+
+Git-commit: 712e9ad0a2bd03e6685e9154985129d3f90efb6f
+Patch-mainline: v5.2-rc1
+References: fate#326572
+
+Enable support of NXP SoC lx2160a to handle the
+lx2160a SoC.
+
+Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
+Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
+Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
+Acked-by: Scott Wood <oss@buserror.net>
+Acked-by: Stephen Boyd <sboyd@kernel.org>
+Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
+---
+ drivers/cpufreq/qoriq-cpufreq.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/cpufreq/qoriq-cpufreq.c b/drivers/cpufreq/qoriq-cpufreq.c
+index d308c4de467d..71b640c8c1a5 100644
+--- a/drivers/cpufreq/qoriq-cpufreq.c
++++ b/drivers/cpufreq/qoriq-cpufreq.c
+@@ -285,6 +285,7 @@ static const struct of_device_id node_matches[] __initconst = {
+ { .compatible = "fsl,ls1046a-clockgen", },
+ { .compatible = "fsl,ls1088a-clockgen", },
+ { .compatible = "fsl,ls2080a-clockgen", },
++ { .compatible = "fsl,lx2160a-clockgen", },
+ { .compatible = "fsl,p4080-clockgen", },
+ { .compatible = "fsl,qoriq-clockgen-1.0", },
+ { .compatible = "fsl,qoriq-clockgen-2.0", },
+--
+2.11.0
+
diff --git a/patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch b/patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch
index 0b1611cc1c..1c71538b0a 100644
--- a/patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch
+++ b/patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch
@@ -3,8 +3,7 @@ Date: Wed, 28 Nov 2018 12:24:47 +0100
Subject: perf: arm_spe: handle devm_kasprintf() failure
Git-commit: 754a58db6a556e6e5f5e32f3e84e7d67b5bf9c8e
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.0-rc1
References: bsc#1120668
devm_kasprintf() may return NULL on failure of internal allocation
diff --git a/patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch b/patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch
index e41abc3cd6..317c283c00 100644
--- a/patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch
+++ b/patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch
@@ -1,9 +1,9 @@
-From 288ddef9fd5f1fecc6558c42cf8694017347e780 Mon Sep 17 00:00:00 2001
From: Vabhav Sharma <vabhav.sharma@nxp.com>
-Date: Mon, 6 Aug 2018 16:10:46 +0530
-Subject: [PATCH 3/3] soc/fsl/guts: Add definition for LX2160A
+Date: Tue, 26 Feb 2019 10:10:56 +0000
+Subject: soc: fsl: guts: Add definition for LX2160A
-Patch-mainline: Submitted, https://patchwork.kernel.org/patch/10658855/
+Git-commit: b2b1a057294df6f0353b33d8e1f03e0dc79721bc
+Patch-mainline: v5.3-rc1
References: fate#326572
Adding compatible string "lx2160a-dcfg" to
@@ -12,16 +12,17 @@ attribute definition for LX2160A
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
+Signed-off-by: Li Yang <leoyang.li@nxp.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
---
drivers/soc/fsl/guts.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
-index 302e0c8d6..bcab1eecd 100644
+index 63f6df86f9e5..d4d17e62bd90 100644
--- a/drivers/soc/fsl/guts.c
+++ b/drivers/soc/fsl/guts.c
-@@ -100,6 +100,11 @@ static const struct fsl_soc_die_attr fsl_soc_die[] = {
+@@ -101,6 +101,11 @@ static const struct fsl_soc_die_attr fsl_soc_die[] = {
.svr = 0x87000000,
.mask = 0xfff70000,
},
@@ -42,5 +43,5 @@ index 302e0c8d6..bcab1eecd 100644
};
MODULE_DEVICE_TABLE(of, fsl_guts_of_match);
--
-2.16.3
+2.11.0
diff --git a/patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch b/patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch
index d4e25ca5e0..a723baf94a 100644
--- a/patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch
+++ b/patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch
@@ -3,8 +3,7 @@ Date: Tue, 15 Jan 2019 12:00:15 +0000
Subject: spi: spi-mem: Add driver for NXP FlexSPI controller
Git-commit: a5356aef6a907c2e2aed0caaa2b88b6021394471
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
- Add driver for NXP FlexSPI host controller
@@ -45,7 +44,7 @@ Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
-@@ -278,6 +278,16 @@ config SPI_FSL_LPSPI
+@@ -285,6 +285,16 @@ config SPI_FSL_LPSPI
help
This enables Freescale i.MX LPSPI controllers in master mode.
@@ -64,7 +63,7 @@ Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
depends on GPIOLIB || COMPILE_TEST
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -60,6 +60,7 @@ obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52x
+@@ -61,6 +61,7 @@ obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52x
obj-$(CONFIG_SPI_MT65XX) += spi-mt65xx.o
obj-$(CONFIG_SPI_MXS) += spi-mxs.o
obj-$(CONFIG_SPI_NUC900) += spi-nuc900.o
diff --git a/patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch b/patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch
index cea7391889..871b62bc92 100644
--- a/patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch
+++ b/patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch
@@ -3,8 +3,7 @@ Date: Tue, 15 Jan 2019 10:05:29 +0000
Subject: spi: nxp-fspi: add octal mode flag bit for octal support
Git-commit: b3281794476d8041e96a1e95afdc0528406c9a7b
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
Add octal mode flags for octal I/O data transfer support.
diff --git a/patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch b/patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch
index 6fbb505561..257f1d2724 100644
--- a/patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch
+++ b/patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch
@@ -3,8 +3,7 @@ Date: Tue, 29 Jan 2019 09:49:22 +0000
Subject: spi: spi-mem: spi-nxp-fspi: add module license info
Git-commit: ce6f0697ebadb90cc37a6ef081384c115bdda196
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
Add MODULE_LICENSE info to fix below warning:
diff --git a/patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch b/patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch
index c0a142457e..c94335db83 100644
--- a/patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch
+++ b/patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch
@@ -3,8 +3,7 @@ Date: Sat, 19 Jan 2019 15:57:56 +0100
Subject: spi: spi-mem: Fix spi_mem_dirmap_destroy() kerneldoc
Git-commit: 5c0c4ec9ba61a98ecb79036afc013bba8d5b85e3
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
spi_mem_dirmap_destroy() takes a single argument, remove the @info entry
diff --git a/patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch b/patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch
index 488115b458..da34f5a0dc 100644
--- a/patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch
+++ b/patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch
@@ -3,8 +3,7 @@ Date: Sat, 19 Jan 2019 15:57:57 +0100
Subject: spi: spi-mem: Fix a memory leak in spi_mem_dirmap_destroy()
Git-commit: bfecfd6e23bf677c85828eb20fa4b13a18bffe23
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
The dirmap descriptor object allocated in spi_mem_dirmap_create is
diff --git a/patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch b/patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch
index 15af587749..8d6c1baf3e 100644
--- a/patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch
+++ b/patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch
@@ -3,8 +3,7 @@ Date: Sat, 19 Jan 2019 16:04:12 +0100
Subject: spi: spi-mem: Add devm_spi_mem_dirmap_{create,destroy}()
Git-commit: 1fc1b63638da1accb27264a507b23aa6863c3852
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
Since direct mapping descriptors usually the same lifetime as the SPI
@@ -96,7 +95,7 @@ Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
+EXPORT_SYMBOL_GPL(devm_spi_mem_dirmap_destroy);
+
/**
- * spi_mem_dirmap_read() - Read data through a direct mapping
+ * spi_mem_dirmap_dirmap_read() - Read data through a direct mapping
* @desc: direct mapping descriptor
--- a/include/linux/spi/spi-mem.h
+++ b/include/linux/spi/spi-mem.h
diff --git a/patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch b/patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch
index 4135d13c87..a274535e8d 100644
--- a/patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch
+++ b/patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch
@@ -3,8 +3,7 @@ Date: Tue, 15 Jan 2019 10:05:10 +0000
Subject: mtd: spi-nor: add opcodes for octal Read/Write commands
Git-commit: fcd44b64b1eb0a33f6cc14f21dcb927ffd664af3
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
- Add opcodes for octal I/O commands
diff --git a/patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch b/patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch
index b454251d29..f8c2b109bf 100644
--- a/patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch
+++ b/patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch
@@ -3,8 +3,7 @@ Date: Tue, 15 Jan 2019 10:05:16 +0000
Subject: mtd: spi-nor: add octal read flag for flash mt35xu512aba
Git-commit: 2bda2f811b36cb7e569ca384e2dfcf74740a8279
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
Add octal read flag for flash mt35xu512aba.
diff --git a/patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch b/patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch
index 2646150d0d..6c1a4d4a76 100644
--- a/patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch
+++ b/patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch
@@ -3,8 +3,7 @@ Date: Tue, 15 Jan 2019 10:05:22 +0000
Subject: mtd: m25p80: add support of octal mode I/O transfer
Git-commit: 0837ae46ff003fed44bfead23c590e7105f47623
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v5.1-rc1
References: fate#326572
Add support for octal mode I/O data transfer based on the controller (spi)
diff --git a/patches.drivers/ALSA-hda-realtek-Add-quirk-for-HP-Envy-x360.patch b/patches.drivers/ALSA-hda-realtek-Add-quirk-for-HP-Envy-x360.patch
new file mode 100644
index 0000000000..792d68b9ca
--- /dev/null
+++ b/patches.drivers/ALSA-hda-realtek-Add-quirk-for-HP-Envy-x360.patch
@@ -0,0 +1,34 @@
+From 190d03814eb3b49d4f87ff38fef26d36f3568a60 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 13 Aug 2019 17:39:56 +0200
+Subject: [PATCH] ALSA: hda/realtek - Add quirk for HP Envy x360
+Git-commit: 190d03814eb3b49d4f87ff38fef26d36f3568a60
+Patch-mainline: v5.3-rc5
+References: bsc#1051510
+
+HP Envy x360 (AMD Ryzen-based model) with 103c:8497 needs the same
+quirk like HP Spectre x360 for enabling the mute LED over Mic3 pin.
+
+Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=204373
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index de224cbea7a0..8aaf1d9c55cf 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6987,6 +6987,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x103c, 0x82bf, "HP G3 mini", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x103c, 0x82c0, "HP G3 mini premium", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
++ SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
+ SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
+ SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
+ SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+--
+2.16.4
+
diff --git a/patches.drivers/ALSA-usb-audio-Fix-a-stack-buffer-overflow-bug-in-ch.patch b/patches.drivers/ALSA-usb-audio-Fix-a-stack-buffer-overflow-bug-in-ch.patch
new file mode 100644
index 0000000000..a4b71dc28d
--- /dev/null
+++ b/patches.drivers/ALSA-usb-audio-Fix-a-stack-buffer-overflow-bug-in-ch.patch
@@ -0,0 +1,135 @@
+From 19bce474c45be69a284ecee660aa12d8f1e88f18 Mon Sep 17 00:00:00 2001
+From: Hui Peng <benquike@gmail.com>
+Date: Thu, 15 Aug 2019 00:31:34 -0400
+Subject: [PATCH] ALSA: usb-audio: Fix a stack buffer overflow bug in
+ check_input_term
+References: CVE-2019-15118,bsc#1145922
+Git-commit: 19bce474c45be69a284ecee660aa12d8f1e88f18
+Patch-mainline: v5.3-rc5
+
+`check_input_term` recursively calls itself with input from
+device side (e.g., uac_input_terminal_descriptor.bCSourceID)
+as argument (id). In `check_input_term`, if `check_input_term`
+is called with the same `id` argument as the caller, it triggers
+endless recursive call, resulting kernel space stack overflow.
+
+This patch fixes the bug by adding a bitmap to `struct mixer_build`
+to keep track of the checked ids and stop the execution if some id
+has been checked (similar to how parse_audio_unit handles unitid
+argument).
+
+Reported-by: Hui Peng <benquike@gmail.com>
+Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
+Signed-off-by: Hui Peng <benquike@gmail.com>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/usb/mixer.c | 35 +++++++++++++++++++++++++++--------
+ 1 file changed, 27 insertions(+), 8 deletions(-)
+
+diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
+index ea487378be17..b5927c3d5bc0 100644
+--- a/sound/usb/mixer.c
++++ b/sound/usb/mixer.c
+@@ -68,6 +68,7 @@ struct mixer_build {
+ unsigned char *buffer;
+ unsigned int buflen;
+ DECLARE_BITMAP(unitbitmap, MAX_ID_ELEMS);
++ DECLARE_BITMAP(termbitmap, MAX_ID_ELEMS);
+ struct usb_audio_term oterm;
+ const struct usbmix_name_map *map;
+ const struct usbmix_selector_map *selector_map;
+@@ -775,16 +776,25 @@ static int uac_mixer_unit_get_channels(struct mixer_build *state,
+ * parse the source unit recursively until it reaches to a terminal
+ * or a branched unit.
+ */
+-static int check_input_term(struct mixer_build *state, int id,
++static int __check_input_term(struct mixer_build *state, int id,
+ struct usb_audio_term *term)
+ {
+ int protocol = state->mixer->protocol;
+ int err;
+ void *p1;
++ unsigned char *hdr;
+
+ memset(term, 0, sizeof(*term));
+- while ((p1 = find_audio_control_unit(state, id)) != NULL) {
+- unsigned char *hdr = p1;
++ for (;;) {
++ /* a loop in the terminal chain? */
++ if (test_and_set_bit(id, state->termbitmap))
++ return -EINVAL;
++
++ p1 = find_audio_control_unit(state, id);
++ if (!p1)
++ break;
++
++ hdr = p1;
+ term->id = id;
+
+ if (protocol == UAC_VERSION_1 || protocol == UAC_VERSION_2) {
+@@ -802,7 +812,7 @@ static int check_input_term(struct mixer_build *state, int id,
+
+ /* call recursively to verify that the
+ * referenced clock entity is valid */
+- err = check_input_term(state, d->bCSourceID, term);
++ err = __check_input_term(state, d->bCSourceID, term);
+ if (err < 0)
+ return err;
+
+@@ -836,7 +846,7 @@ static int check_input_term(struct mixer_build *state, int id,
+ case UAC2_CLOCK_SELECTOR: {
+ struct uac_selector_unit_descriptor *d = p1;
+ /* call recursively to retrieve the channel info */
+- err = check_input_term(state, d->baSourceID[0], term);
++ err = __check_input_term(state, d->baSourceID[0], term);
+ if (err < 0)
+ return err;
+ term->type = UAC3_SELECTOR_UNIT << 16; /* virtual type */
+@@ -899,7 +909,7 @@ static int check_input_term(struct mixer_build *state, int id,
+
+ /* call recursively to verify that the
+ * referenced clock entity is valid */
+- err = check_input_term(state, d->bCSourceID, term);
++ err = __check_input_term(state, d->bCSourceID, term);
+ if (err < 0)
+ return err;
+
+@@ -950,7 +960,7 @@ static int check_input_term(struct mixer_build *state, int id,
+ case UAC3_CLOCK_SELECTOR: {
+ struct uac_selector_unit_descriptor *d = p1;
+ /* call recursively to retrieve the channel info */
+- err = check_input_term(state, d->baSourceID[0], term);
++ err = __check_input_term(state, d->baSourceID[0], term);
+ if (err < 0)
+ return err;
+ term->type = UAC3_SELECTOR_UNIT << 16; /* virtual type */
+@@ -966,7 +976,7 @@ static int check_input_term(struct mixer_build *state, int id,
+ return -EINVAL;
+
+ /* call recursively to retrieve the channel info */
+- err = check_input_term(state, d->baSourceID[0], term);
++ err = __check_input_term(state, d->baSourceID[0], term);
+ if (err < 0)
+ return err;
+
+@@ -984,6 +994,15 @@ static int check_input_term(struct mixer_build *state, int id,
+ return -ENODEV;
+ }
+
++
++static int check_input_term(struct mixer_build *state, int id,
++ struct usb_audio_term *term)
++{
++ memset(term, 0, sizeof(*term));
++ memset(state->termbitmap, 0, sizeof(state->termbitmap));
++ return __check_input_term(state, id, term);
++}
++
+ /*
+ * Feature Unit
+ */
+--
+2.16.4
+
diff --git a/patches.drivers/ALSA-usb-audio-Fix-an-OOB-bug-in-parse_audio_mixer_u.patch b/patches.drivers/ALSA-usb-audio-Fix-an-OOB-bug-in-parse_audio_mixer_u.patch
new file mode 100644
index 0000000000..3b0f7a5716
--- /dev/null
+++ b/patches.drivers/ALSA-usb-audio-Fix-an-OOB-bug-in-parse_audio_mixer_u.patch
@@ -0,0 +1,56 @@
+From daac07156b330b18eb5071aec4b3ddca1c377f2c Mon Sep 17 00:00:00 2001
+From: Hui Peng <benquike@gmail.com>
+Date: Tue, 13 Aug 2019 22:34:04 -0400
+Subject: [PATCH] ALSA: usb-audio: Fix an OOB bug in parse_audio_mixer_unit
+References: CVE-2019-15117,bsc#1145920
+Git-commit: daac07156b330b18eb5071aec4b3ddca1c377f2c
+Patch-mainline: v5.3-rc5
+
+The `uac_mixer_unit_descriptor` shown as below is read from the
+device side. In `parse_audio_mixer_unit`, `baSourceID` field is
+accessed from index 0 to `bNrInPins` - 1, the current implementation
+assumes that descriptor is always valid (the length of descriptor
+is no shorter than 5 + `bNrInPins`). If a descriptor read from
+the device side is invalid, it may trigger out-of-bound memory
+access.
+
+```
+struct uac_mixer_unit_descriptor {
+ __u8 bLength;
+ __u8 bDescriptorType;
+ __u8 bDescriptorSubtype;
+ __u8 bUnitID;
+ __u8 bNrInPins;
+ __u8 baSourceID[];
+}
+```
+
+This patch fixes the bug by add a sanity check on the length of
+the descriptor.
+
+Reported-by: Hui Peng <benquike@gmail.com>
+Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Hui Peng <benquike@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/usb/mixer.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
+index 7498b5191b68..ea487378be17 100644
+--- a/sound/usb/mixer.c
++++ b/sound/usb/mixer.c
+@@ -744,6 +744,8 @@ static int uac_mixer_unit_get_channels(struct mixer_build *state,
+ return -EINVAL;
+ if (!desc->bNrInPins)
+ return -EINVAL;
++ if (desc->bLength < sizeof(*desc) + desc->bNrInPins)
++ return -EINVAL;
+
+ switch (state->mixer->protocol) {
+ case UAC_VERSION_1:
+--
+2.16.4
+
diff --git a/patches.drivers/ath10k-Drop-WARN_ON-s-that-always-trigger-during-sys.patch b/patches.drivers/ath10k-Drop-WARN_ON-s-that-always-trigger-during-sys.patch
new file mode 100644
index 0000000000..919243ebc8
--- /dev/null
+++ b/patches.drivers/ath10k-Drop-WARN_ON-s-that-always-trigger-during-sys.patch
@@ -0,0 +1,41 @@
+From 9e80ad37f6788ed52b89a3cfcd593e0aa69b216d Mon Sep 17 00:00:00 2001
+From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+Date: Sun, 3 Mar 2019 18:24:33 +0100
+Subject: [PATCH] ath10k: Drop WARN_ON()s that always trigger during system resume
+Git-commit: 9e80ad37f6788ed52b89a3cfcd593e0aa69b216d
+Patch-mainline: v5.1
+References: bsc#1111666
+
+ath10k_mac_vif_chan() always returns an error for the given vif
+during system-wide resume which reliably triggers two WARN_ON()s
+in ath10k_bss_info_changed() and they are not particularly
+useful in that code path, so drop them.
+
+Tested: QCA6174 hw3.2 PCI with WLAN.RM.2.0-00180-QCARMSWPZ-1
+Tested: QCA6174 hw3.2 SDIO with WLAN.RMH.4.4.1-00007-QCARMSWP-1
+
+Fixes: cd93b83ad927 ("ath10k: support for multicast rate control")
+Fixes: f279294e9ee2 ("ath10k: add support for configuring management packet rate")
+Cc: stable@vger.kernel.org
+Reviewed-by: Brian Norris <briannorris@chromium.org>
+Tested-by: Brian Norris <briannorris@chromium.org>
+Tested-by: Claire Chang <tientzu@chromium.org>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/ath10k/mac.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ath/ath10k/mac.c
++++ b/drivers/net/wireless/ath/ath10k/mac.c
+@@ -5630,7 +5630,7 @@ static void ath10k_bss_info_changed(stru
+ }
+
+ if (changed & BSS_CHANGED_MCAST_RATE &&
+- !WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) {
++ !ath10k_mac_vif_chan(arvif->vif, &def)) {
+ band = def.chan->band;
+ rateidx = vif->bss_conf.mcast_rate[band] - 1;
+
diff --git a/patches.drivers/ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch b/patches.drivers/ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
index 4558e243f0..790fbab9ab 100644
--- a/patches.drivers/ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
+++ b/patches.drivers/ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
@@ -42,7 +42,7 @@ Acked-by: Takashi Iwai <tiwai@suse.de>
mutex_lock(&ar->conf_mutex);
@@ -5632,7 +5632,11 @@ static void ath10k_bss_info_changed(stru
if (changed & BSS_CHANGED_MCAST_RATE &&
- !WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) {
+ !ath10k_mac_vif_chan(arvif->vif, &def)) {
band = def.chan->band;
- rateidx = vif->bss_conf.mcast_rate[band] - 1;
+ mcast_rate = vif->bss_conf.mcast_rate[band];
diff --git a/patches.drivers/bnx2x-Disable-multi-cos-feature.patch b/patches.drivers/bnx2x-Disable-multi-cos-feature.patch
new file mode 100644
index 0000000000..a4e4d5bcf7
--- /dev/null
+++ b/patches.drivers/bnx2x-Disable-multi-cos-feature.patch
@@ -0,0 +1,34 @@
+From: Sudarsana Reddy Kalluru <skalluru@marvell.com>
+Date: Tue, 23 Jul 2019 19:32:41 -0700
+Subject: bnx2x: Disable multi-cos feature.
+Patch-mainline: v5.3-rc4
+Git-commit: d1f0b5dce8fda09a7f5f04c1878f181d548e42f5
+References: bsc#1136498 jsc#SLE-4699
+
+Commit 3968d38917eb ("bnx2x: Fix Multi-Cos.") which enabled multi-cos
+feature after prolonged time in driver added some regression causing
+numerous issues (sudden reboots, tx timeout etc.) reported by customers.
+We plan to backout this commit and submit proper fix once we have root
+cause of issues reported with this feature enabled.
+
+Fixes: 3968d38917eb ("bnx2x: Fix Multi-Cos.")
+Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
+Signed-off-by: Manish Chopra <manishc@marvell.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
++++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+@@ -1935,8 +1935,7 @@ u16 bnx2x_select_queue(struct net_device
+ }
+
+ /* select a non-FCoE queue */
+- return fallback(dev, skb, NULL) %
+- (BNX2X_NUM_ETH_QUEUES(bp) * bp->max_cos);
++ return fallback(dev, skb, NULL) % (BNX2X_NUM_ETH_QUEUES(bp));
+ }
+
+ void bnx2x_set_num_queues(struct bnx2x *bp)
diff --git a/patches.drivers/bpf-sockmap-only-create-entry-if-ulp-is-not-already-.patch b/patches.drivers/bpf-sockmap-only-create-entry-if-ulp-is-not-already-.patch
new file mode 100644
index 0000000000..a70f4f020f
--- /dev/null
+++ b/patches.drivers/bpf-sockmap-only-create-entry-if-ulp-is-not-already-.patch
@@ -0,0 +1,40 @@
+From: John Fastabend <john.fastabend@gmail.com>
+Date: Fri, 19 Jul 2019 10:29:21 -0700
+Subject: bpf: sockmap, only create entry if ulp is not already enabled
+Patch-mainline: v5.3-rc4
+Git-commit: 0e858739c2d2eedeeac1d35bfa0ec3cc2a7190d8
+References: bsc#1109837
+
+Sockmap does not currently support adding sockets after TLS has been
+enabled. There never was a real use case for this so it was never
+added. But, we lost the test for ULP at some point so add it here
+and fail the socket insert if TLS is enabled. Future work could
+make sockmap support this use case but fixup the bug here.
+
+Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
+Signed-off-by: John Fastabend <john.fastabend@gmail.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ net/core/sock_map.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/net/core/sock_map.c
++++ b/net/core/sock_map.c
+@@ -339,6 +339,7 @@ static int sock_map_update_common(struct
+ struct sock *sk, u64 flags)
+ {
+ struct bpf_stab *stab = container_of(map, struct bpf_stab, map);
++ struct inet_connection_sock *icsk = inet_csk(sk);
+ struct sk_psock_link *link;
+ struct sk_psock *psock;
+ struct sock *osk;
+@@ -349,6 +350,8 @@ static int sock_map_update_common(struct
+ return -EINVAL;
+ if (unlikely(idx >= map->max_entries))
+ return -E2BIG;
++ if (unlikely(icsk->icsk_ulp_data))
++ return -EINVAL;
+
+ link = sk_psock_init_link();
+ if (!link)
diff --git a/patches.drivers/bpf-sockmap-sock_map_delete-needs-to-use-xchg.patch b/patches.drivers/bpf-sockmap-sock_map_delete-needs-to-use-xchg.patch
new file mode 100644
index 0000000000..0eefcb6c88
--- /dev/null
+++ b/patches.drivers/bpf-sockmap-sock_map_delete-needs-to-use-xchg.patch
@@ -0,0 +1,69 @@
+From: John Fastabend <john.fastabend@gmail.com>
+Date: Fri, 19 Jul 2019 10:29:19 -0700
+Subject: bpf: sockmap, sock_map_delete needs to use xchg
+Patch-mainline: v5.3-rc4
+Git-commit: 45a4521dcbd92e71c9e53031b40e34211d3b4feb
+References: bsc#1109837
+
+__sock_map_delete() may be called from a tcp event such as unhash or
+close from the following trace,
+
+ tcp_bpf_close()
+ tcp_bpf_remove()
+ sk_psock_unlink()
+ sock_map_delete_from_link()
+ __sock_map_delete()
+
+In this case the sock lock is held but this only protects against
+duplicate removals on the TCP side. If the map is free'd then we have
+this trace,
+
+ sock_map_free
+ xchg() <- replaces map entry
+ sock_map_unref()
+ sk_psock_put()
+ sock_map_del_link()
+
+The __sock_map_delete() call however uses a read, test, null over the
+map entry which can result in both paths trying to free the map
+entry.
+
+To fix use xchg in TCP paths as well so we avoid having two references
+to the same map entry.
+
+Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
+Signed-off-by: John Fastabend <john.fastabend@gmail.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ net/core/sock_map.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+--- a/net/core/sock_map.c
++++ b/net/core/sock_map.c
+@@ -281,16 +281,20 @@ static int __sock_map_delete(struct bpf_
+ struct sock **psk)
+ {
+ struct sock *sk;
++ int err = 0;
+
+ raw_spin_lock_bh(&stab->lock);
+ sk = *psk;
+ if (!sk_test || sk_test == sk)
+- *psk = NULL;
++ sk = xchg(psk, NULL);
++
++ if (likely(sk))
++ sock_map_unref(sk, psk);
++ else
++ err = -EINVAL;
++
+ raw_spin_unlock_bh(&stab->lock);
+- if (unlikely(!sk))
+- return -EINVAL;
+- sock_map_unref(sk, psk);
+- return 0;
++ return err;
+ }
+
+ static void sock_map_delete_from_link(struct bpf_map *map, struct sock *sk,
diff --git a/patches.drivers/bpf-sockmap-synchronize_rcu-before-free-ing-map.patch b/patches.drivers/bpf-sockmap-synchronize_rcu-before-free-ing-map.patch
new file mode 100644
index 0000000000..784a8ef8b1
--- /dev/null
+++ b/patches.drivers/bpf-sockmap-synchronize_rcu-before-free-ing-map.patch
@@ -0,0 +1,30 @@
+From: John Fastabend <john.fastabend@gmail.com>
+Date: Fri, 19 Jul 2019 10:29:20 -0700
+Subject: bpf: sockmap, synchronize_rcu before free'ing map
+Patch-mainline: v5.3-rc4
+Git-commit: 2bb90e5cc90e1d09f631aeab041a9cf913a5bbe5
+References: bsc#1109837
+
+We need to have a synchronize_rcu before free'ing the sockmap because
+any outstanding psock references will have a pointer to the map and
+when they use this could trigger a use after free.
+
+Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
+Signed-off-by: John Fastabend <john.fastabend@gmail.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ net/core/sock_map.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/net/core/sock_map.c
++++ b/net/core/sock_map.c
+@@ -252,6 +252,8 @@ static void sock_map_free(struct bpf_map
+ raw_spin_unlock_bh(&stab->lock);
+ rcu_read_unlock();
+
++ synchronize_rcu();
++
+ bpf_map_area_free(stab->sks);
+ kfree(stab);
+ }
diff --git a/patches.drivers/iommu-iova-remove-stale-cached32_node b/patches.drivers/iommu-iova-remove-stale-cached32_node
new file mode 100644
index 0000000000..aebd9c5432
--- /dev/null
+++ b/patches.drivers/iommu-iova-remove-stale-cached32_node
@@ -0,0 +1,151 @@
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat, 20 Jul 2019 19:08:48 +0100
+Subject: iommu/iova: Remove stale cached32_node
+Git-commit: 9eed17d37c77171cf5ffb95c4257f87df3cd4c8f
+Patch-mainline: v5.3-rc2
+References: bsc#1145018
+
+Since the cached32_node is allowed to be advanced above dma_32bit_pfn
+(to provide a shortcut into the limited range), we need to be careful to
+remove the to be freed node if it is the cached32_node.
+
+[ 48.477773] BUG: KASAN: use-after-free in __cached_rbnode_delete_update+0x68/0x110
+[ 48.477812] Read of size 8 at addr ffff88870fc19020 by task kworker/u8:1/37
+[ 48.477843]
+[ 48.477879] CPU: 1 PID: 37 Comm: kworker/u8:1 Tainted: G U 5.2.0+ #735
+[ 48.477915] Hardware name: Intel Corporation NUC7i5BNK/NUC7i5BNB, BIOS BNKBL357.86A.0052.2017.0918.1346 09/18/2017
+[ 48.478047] Workqueue: i915 __i915_gem_free_work [i915]
+[ 48.478075] Call Trace:
+[ 48.478111] dump_stack+0x5b/0x90
+[ 48.478137] print_address_description+0x67/0x237
+[ 48.478178] ? __cached_rbnode_delete_update+0x68/0x110
+[ 48.478212] __kasan_report.cold.3+0x1c/0x38
+[ 48.478240] ? __cached_rbnode_delete_update+0x68/0x110
+[ 48.478280] ? __cached_rbnode_delete_update+0x68/0x110
+[ 48.478308] __cached_rbnode_delete_update+0x68/0x110
+[ 48.478344] private_free_iova+0x2b/0x60
+[ 48.478378] iova_magazine_free_pfns+0x46/0xa0
+[ 48.478403] free_iova_fast+0x277/0x340
+[ 48.478443] fq_ring_free+0x15a/0x1a0
+[ 48.478473] queue_iova+0x19c/0x1f0
+[ 48.478597] cleanup_page_dma.isra.64+0x62/0xb0 [i915]
+[ 48.478712] __gen8_ppgtt_cleanup+0x63/0x80 [i915]
+[ 48.478826] __gen8_ppgtt_cleanup+0x42/0x80 [i915]
+[ 48.478940] __gen8_ppgtt_clear+0x433/0x4b0 [i915]
+[ 48.479053] __gen8_ppgtt_clear+0x462/0x4b0 [i915]
+[ 48.479081] ? __sg_free_table+0x9e/0xf0
+[ 48.479116] ? kfree+0x7f/0x150
+[ 48.479234] i915_vma_unbind+0x1e2/0x240 [i915]
+[ 48.479352] i915_vma_destroy+0x3a/0x280 [i915]
+[ 48.479465] __i915_gem_free_objects+0xf0/0x2d0 [i915]
+[ 48.479579] __i915_gem_free_work+0x41/0xa0 [i915]
+[ 48.479607] process_one_work+0x495/0x710
+[ 48.479642] worker_thread+0x4c7/0x6f0
+[ 48.479687] ? process_one_work+0x710/0x710
+[ 48.479724] kthread+0x1b2/0x1d0
+[ 48.479774] ? kthread_create_worker_on_cpu+0xa0/0xa0
+[ 48.479820] ret_from_fork+0x1f/0x30
+[ 48.479864]
+[ 48.479907] Allocated by task 631:
+[ 48.479944] save_stack+0x19/0x80
+[ 48.479994] __kasan_kmalloc.constprop.6+0xc1/0xd0
+[ 48.480038] kmem_cache_alloc+0x91/0xf0
+[ 48.480082] alloc_iova+0x2b/0x1e0
+[ 48.480125] alloc_iova_fast+0x58/0x376
+[ 48.480166] intel_alloc_iova+0x90/0xc0
+[ 48.480214] intel_map_sg+0xde/0x1f0
+[ 48.480343] i915_gem_gtt_prepare_pages+0xb8/0x170 [i915]
+[ 48.480465] huge_get_pages+0x232/0x2b0 [i915]
+[ 48.480590] ____i915_gem_object_get_pages+0x40/0xb0 [i915]
+[ 48.480712] __i915_gem_object_get_pages+0x90/0xa0 [i915]
+[ 48.480834] i915_gem_object_prepare_write+0x2d6/0x330 [i915]
+[ 48.480955] create_test_object.isra.54+0x1a9/0x3e0 [i915]
+[ 48.481075] igt_shared_ctx_exec+0x365/0x3c0 [i915]
+[ 48.481210] __i915_subtests.cold.4+0x30/0x92 [i915]
+[ 48.481341] __run_selftests.cold.3+0xa9/0x119 [i915]
+[ 48.481466] i915_live_selftests+0x3c/0x70 [i915]
+[ 48.481583] i915_pci_probe+0xe7/0x220 [i915]
+[ 48.481620] pci_device_probe+0xe0/0x180
+[ 48.481665] really_probe+0x163/0x4e0
+[ 48.481710] device_driver_attach+0x85/0x90
+[ 48.481750] __driver_attach+0xa5/0x180
+[ 48.481796] bus_for_each_dev+0xda/0x130
+[ 48.481831] bus_add_driver+0x205/0x2e0
+[ 48.481882] driver_register+0xca/0x140
+[ 48.481927] do_one_initcall+0x6c/0x1af
+[ 48.481970] do_init_module+0x106/0x350
+[ 48.482010] load_module+0x3d2c/0x3ea0
+[ 48.482058] __do_sys_finit_module+0x110/0x180
+[ 48.482102] do_syscall_64+0x62/0x1f0
+[ 48.482147] entry_SYSCALL_64_after_hwframe+0x44/0xa9
+[ 48.482190]
+[ 48.482224] Freed by task 37:
+[ 48.482273] save_stack+0x19/0x80
+[ 48.482318] __kasan_slab_free+0x12e/0x180
+[ 48.482363] kmem_cache_free+0x70/0x140
+[ 48.482406] __free_iova+0x1d/0x30
+[ 48.482445] fq_ring_free+0x15a/0x1a0
+[ 48.482490] queue_iova+0x19c/0x1f0
+[ 48.482624] cleanup_page_dma.isra.64+0x62/0xb0 [i915]
+[ 48.482749] __gen8_ppgtt_cleanup+0x63/0x80 [i915]
+[ 48.482873] __gen8_ppgtt_cleanup+0x42/0x80 [i915]
+[ 48.482999] __gen8_ppgtt_clear+0x433/0x4b0 [i915]
+[ 48.483123] __gen8_ppgtt_clear+0x462/0x4b0 [i915]
+[ 48.483250] i915_vma_unbind+0x1e2/0x240 [i915]
+[ 48.483378] i915_vma_destroy+0x3a/0x280 [i915]
+[ 48.483500] __i915_gem_free_objects+0xf0/0x2d0 [i915]
+[ 48.483622] __i915_gem_free_work+0x41/0xa0 [i915]
+[ 48.483659] process_one_work+0x495/0x710
+[ 48.483704] worker_thread+0x4c7/0x6f0
+[ 48.483748] kthread+0x1b2/0x1d0
+[ 48.483787] ret_from_fork+0x1f/0x30
+[ 48.483831]
+[ 48.483868] The buggy address belongs to the object at ffff88870fc19000
+[ 48.483868] which belongs to the cache iommu_iova of size 40
+[ 48.483920] The buggy address is located 32 bytes inside of
+[ 48.483920] 40-byte region [ffff88870fc19000, ffff88870fc19028)
+[ 48.483964] The buggy address belongs to the page:
+[ 48.484006] page:ffffea001c3f0600 refcount:1 mapcount:0 mapping:ffff8888181a91c0 index:0x0 compound_mapcount: 0
+[ 48.484045] flags: 0x8000000000010200(slab|head)
+[ 48.484096] raw: 8000000000010200 ffffea001c421a08 ffffea001c447e88 ffff8888181a91c0
+[ 48.484141] raw: 0000000000000000 0000000000120012 00000001ffffffff 0000000000000000
+[ 48.484188] page dumped because: kasan: bad access detected
+[ 48.484230]
+[ 48.484265] Memory state around the buggy address:
+[ 48.484314] ffff88870fc18f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[ 48.484361] ffff88870fc18f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[ 48.484406] >ffff88870fc19000: fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc
+[ 48.484451] ^
+[ 48.484494] ffff88870fc19080: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[ 48.484530] ffff88870fc19100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108602
+Fixes: e60aa7b53845 ("iommu/iova: Extend rbtree node caching")
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Robin Murphy <robin.murphy@arm.com>
+Cc: Joerg Roedel <jroedel@suse.de>
+Cc: Joerg Roedel <joro@8bytes.org>
+Cc: <stable@vger.kernel.org> # v4.15+
+Reviewed-by: Robin Murphy <robin.murphy@arm.com>
+Signed-off-by: Joerg Roedel <jroedel@suse.de>
+---
+ drivers/iommu/iova.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
+index 8413ae54904a..3e1a8a675572 100644
+--- a/drivers/iommu/iova.c
++++ b/drivers/iommu/iova.c
+@@ -137,8 +137,9 @@ __cached_rbnode_delete_update(struct iova_domain *iovad, struct iova *free)
+ struct iova *cached_iova;
+
+ cached_iova = rb_entry(iovad->cached32_node, struct iova, node);
+- if (free->pfn_hi < iovad->dma_32bit_pfn &&
+- free->pfn_lo >= cached_iova->pfn_lo) {
++ if (free == cached_iova ||
++ (free->pfn_hi < iovad->dma_32bit_pfn &&
++ free->pfn_lo >= cached_iova->pfn_lo)) {
+ iovad->cached32_node = rb_next(&free->node);
+ iovad->max32_alloc_size = iovad->dma_32bit_pfn;
+ }
+
diff --git a/patches.drivers/mlxsw-spectrum-Fix-error-path-in-mlxsw_sp_module_ini.patch b/patches.drivers/mlxsw-spectrum-Fix-error-path-in-mlxsw_sp_module_ini.patch
new file mode 100644
index 0000000000..6a686f87af
--- /dev/null
+++ b/patches.drivers/mlxsw-spectrum-Fix-error-path-in-mlxsw_sp_module_ini.patch
@@ -0,0 +1,30 @@
+From: Jiri Pirko <jiri@mellanox.com>
+Date: Wed, 31 Jul 2019 09:33:14 +0300
+Subject: mlxsw: spectrum: Fix error path in mlxsw_sp_module_init()
+Patch-mainline: v5.3-rc4
+Git-commit: 28fe79000e9b0a6f99959869947f1ca305f14599
+References: bsc#1112374
+
+In case of sp2 pci driver registration fail, fix the error path to
+start with sp1 pci driver unregister.
+
+Fixes: c3ab435466d5 ("mlxsw: spectrum: Extend to support Spectrum-2 ASIC")
+Signed-off-by: Jiri Pirko <jiri@mellanox.com>
+Signed-off-by: Ido Schimmel <idosch@mellanox.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
++++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+@@ -5047,7 +5047,7 @@ static int __init mlxsw_sp_module_init(v
+ return 0;
+
+ err_sp2_pci_driver_register:
+- mlxsw_pci_driver_unregister(&mlxsw_sp2_pci_driver);
++ mlxsw_pci_driver_unregister(&mlxsw_sp1_pci_driver);
+ err_sp1_pci_driver_register:
+ mlxsw_core_driver_unregister(&mlxsw_sp2_driver);
+ err_sp2_core_driver_register:
diff --git a/patches.drivers/net-fix-bpf_xdp_adjust_head-regression-for-generic-X.patch b/patches.drivers/net-fix-bpf_xdp_adjust_head-regression-for-generic-X.patch
new file mode 100644
index 0000000000..5926bc5daf
--- /dev/null
+++ b/patches.drivers/net-fix-bpf_xdp_adjust_head-regression-for-generic-X.patch
@@ -0,0 +1,50 @@
+From: Jesper Dangaard Brouer <brouer@redhat.com>
+Date: Thu, 1 Aug 2019 20:00:31 +0200
+Subject: net: fix bpf_xdp_adjust_head regression for generic-XDP
+Patch-mainline: v5.3-rc4
+Git-commit: 065af355470519bd184019a93ac579f22b036045
+References: bsc#1109837
+
+When generic-XDP was moved to a later processing step by commit
+458bf2f224f0 ("net: core: support XDP generic on stacked devices.")
+a regression was introduced when using bpf_xdp_adjust_head.
+
+The issue is that after this commit the skb->network_header is now
+changed prior to calling generic XDP and not after. Thus, if the header
+is changed by XDP (via bpf_xdp_adjust_head), then skb->network_header
+also need to be updated again. Fix by calling skb_reset_network_header().
+
+Fixes: 458bf2f224f0 ("net: core: support XDP generic on stacked devices.")
+Reported-by: Brandon Cazander <brandon.cazander@multapplied.net>
+Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ net/core/dev.c | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -4303,12 +4303,17 @@ static u32 netif_receive_generic_xdp(str
+
+ act = bpf_prog_run_xdp(xdp_prog, xdp);
+
++ /* check if bpf_xdp_adjust_head was used */
+ off = xdp->data - orig_data;
+- if (off > 0)
+- __skb_pull(skb, off);
+- else if (off < 0)
+- __skb_push(skb, -off);
+- skb->mac_header += off;
++ if (off) {
++ if (off > 0)
++ __skb_pull(skb, off);
++ else if (off < 0)
++ __skb_push(skb, -off);
++
++ skb->mac_header += off;
++ skb_reset_network_header(skb);
++ }
+
+ /* check if bpf_xdp_adjust_tail was used. it can only "shrink"
+ * pckt.
diff --git a/patches.drivers/net-mlx5-Fix-modify_cq_in-alignment.patch b/patches.drivers/net-mlx5-Fix-modify_cq_in-alignment.patch
new file mode 100644
index 0000000000..be0aa26b03
--- /dev/null
+++ b/patches.drivers/net-mlx5-Fix-modify_cq_in-alignment.patch
@@ -0,0 +1,38 @@
+From: Edward Srouji <edwards@mellanox.com>
+Date: Tue, 23 Jul 2019 10:12:55 +0300
+Subject: net/mlx5: Fix modify_cq_in alignment
+Patch-mainline: v5.3-rc4
+Git-commit: 7a32f2962c56d9d8a836b4469855caeee8766bd4
+References: bsc#1103990 FATE#326006
+
+Fix modify_cq_in alignment to match the device specification.
+After this fix the 'cq_umem_valid' field will be in the right offset.
+
+Cc: <stable@vger.kernel.org> # 4.19
+Fixes: bd37197554eb ("net/mlx5: Update mlx5_ifc with DEVX UID bits")
+Signed-off-by: Edward Srouji <edwards@mellanox.com>
+Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
+Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
+Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ include/linux/mlx5/mlx5_ifc.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/include/linux/mlx5/mlx5_ifc.h
++++ b/include/linux/mlx5/mlx5_ifc.h
+@@ -5678,10 +5678,12 @@ struct mlx5_ifc_modify_cq_in_bits {
+
+ struct mlx5_ifc_cqc_bits cq_context;
+
+- u8 reserved_at_280[0x40];
++ u8 reserved_at_280[0x60];
+
+ u8 cq_umem_valid[0x1];
+- u8 reserved_at_2c1[0x5bf];
++ u8 reserved_at_2e1[0x1f];
++
++ u8 reserved_at_300[0x580];
+
+ u8 pas[0][0x40];
+ };
diff --git a/patches.drivers/net-mlx5e-always-initialize-frag-last_in_page.patch b/patches.drivers/net-mlx5e-always-initialize-frag-last_in_page.patch
new file mode 100644
index 0000000000..d605f117b0
--- /dev/null
+++ b/patches.drivers/net-mlx5e-always-initialize-frag-last_in_page.patch
@@ -0,0 +1,76 @@
+From: Qian Cai <cai@lca.pw>
+Date: Thu, 1 Aug 2019 09:52:54 -0400
+Subject: net/mlx5e: always initialize frag->last_in_page
+Patch-mainline: v5.3-rc4
+Git-commit: 60d60c8fbd8d1acf25b041ecd72ae4fa16e9405b
+References: bsc#1103990 FATE#326006
+
+The commit 069d11465a80 ("net/mlx5e: RX, Enhance legacy Receive Queue
+memory scheme") introduced an undefined behaviour below due to
+"frag->last_in_page" is only initialized in mlx5e_init_frags_partition()
+when,
+
+if (next_frag.offset + frag_info[f].frag_stride > PAGE_SIZE)
+
+or after bailed out the loop,
+
+for (i = 0; i < mlx5_wq_cyc_get_size(&rq->wqe.wq); i++)
+
+As the result, there could be some "frag" have uninitialized
+value of "last_in_page".
+
+Later, get_frag() obtains those "frag" and check "frag->last_in_page" in
+mlx5e_put_rx_frag() and triggers the error during boot. Fix it by always
+initializing "frag->last_in_page" to "false" in
+mlx5e_init_frags_partition().
+
+UBSAN: Undefined behaviour in
+drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:325:12
+load of value 170 is not a valid value for type 'bool' (aka '_Bool')
+Call trace:
+ dump_backtrace+0x0/0x264
+ show_stack+0x20/0x2c
+ dump_stack+0xb0/0x104
+ __ubsan_handle_load_invalid_value+0x104/0x128
+ mlx5e_handle_rx_cqe+0x8e8/0x12cc [mlx5_core]
+ mlx5e_poll_rx_cq+0xca8/0x1a94 [mlx5_core]
+ mlx5e_napi_poll+0x17c/0xa30 [mlx5_core]
+ net_rx_action+0x248/0x940
+ __do_softirq+0x350/0x7b8
+ irq_exit+0x200/0x26c
+ __handle_domain_irq+0xc8/0x128
+ gic_handle_irq+0x138/0x228
+ el1_irq+0xb8/0x140
+ arch_cpu_idle+0x1a4/0x348
+ do_idle+0x114/0x1b0
+ cpu_startup_entry+0x24/0x28
+ rest_init+0x1ac/0x1dc
+ arch_call_rest_init+0x10/0x18
+ start_kernel+0x4d4/0x57c
+
+Fixes: 069d11465a80 ("net/mlx5e: RX, Enhance legacy Receive Queue memory scheme")
+Signed-off-by: Qian Cai <cai@lca.pw>
+Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
++++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+@@ -430,12 +430,11 @@ static inline u64 mlx5e_get_mpwqe_offset
+
+ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq)
+ {
+- struct mlx5e_wqe_frag_info next_frag, *prev;
++ struct mlx5e_wqe_frag_info next_frag = {};
++ struct mlx5e_wqe_frag_info *prev = NULL;
+ int i;
+
+ next_frag.di = &rq->wqe.di[0];
+- next_frag.offset = 0;
+- prev = NULL;
+
+ for (i = 0; i < mlx5_wq_cyc_get_size(&rq->wqe.wq); i++) {
+ struct mlx5e_rq_frag_info *frag_info = &rq->wqe.info.arr[0];
diff --git a/patches.drivers/net-mvpp2-Don-t-check-for-3-consecutive-Idle-frames-.patch b/patches.drivers/net-mvpp2-Don-t-check-for-3-consecutive-Idle-frames-.patch
new file mode 100644
index 0000000000..422978f0ce
--- /dev/null
+++ b/patches.drivers/net-mvpp2-Don-t-check-for-3-consecutive-Idle-frames-.patch
@@ -0,0 +1,34 @@
+From: Maxime Chevallier <maxime.chevallier@bootlin.com>
+Date: Fri, 19 Jul 2019 16:38:48 +0200
+Subject: net: mvpp2: Don't check for 3 consecutive Idle frames for 10G links
+Patch-mainline: v5.3-rc4
+Git-commit: bba18318e7d1d5c8b0bbafd65010a0cee3c65608
+References: bsc#1119113 FATE#326472
+
+PPv2's XLGMAC can wait for 3 idle frames before triggering a link up
+event. This can cause the link to be stuck low when there's traffic on
+the interface, so disable this feature.
+
+Fixes: 4bb043262878 ("net: mvpp2: phylink support")
+Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
++++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+@@ -4544,9 +4544,9 @@ static void mvpp2_xlg_config(struct mvpp
+ if (state->pause & MLO_PAUSE_RX)
+ ctrl0 |= MVPP22_XLG_CTRL0_RX_FLOW_CTRL_EN;
+
+- ctrl4 &= ~MVPP22_XLG_CTRL4_MACMODSELECT_GMAC;
+- ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC |
+- MVPP22_XLG_CTRL4_EN_IDLE_CHECK;
++ ctrl4 &= ~(MVPP22_XLG_CTRL4_MACMODSELECT_GMAC |
++ MVPP22_XLG_CTRL4_EN_IDLE_CHECK);
++ ctrl4 |= MVPP22_XLG_CTRL4_FWD_FC | MVPP22_XLG_CTRL4_FWD_PFC;
+
+ writel(ctrl0, port->base + MVPP22_XLG_CTRL0_REG);
+ writel(ctrl4, port->base + MVPP22_XLG_CTRL4_REG);
diff --git a/patches.drivers/net-phylink-Fix-flow-control-for-fixed-link.patch b/patches.drivers/net-phylink-Fix-flow-control-for-fixed-link.patch
new file mode 100644
index 0000000000..3cb8d5953f
--- /dev/null
+++ b/patches.drivers/net-phylink-Fix-flow-control-for-fixed-link.patch
@@ -0,0 +1,55 @@
+From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= <opensource@vdorst.com>
+Date: Sat, 27 Jul 2019 11:40:11 +0200
+Subject: net: phylink: Fix flow control for fixed-link
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Patch-mainline: v5.3-rc4
+Git-commit: 8aace4f3eba2a3ceb431e18683ea0e1ecbade5cd
+References: bsc#1119113 FATE#326472
+
+In phylink_parse_fixedlink() the pl->link_config.advertising bits are AND
+with pl->supported, pl->supported is zeroed and only the speed/duplex
+modes and MII bits are set.
+So pl->link_config.advertising always loses the flow control/pause bits.
+
+By setting Pause and Asym_Pause bits in pl->supported, the flow control
+work again when devicetree "pause" is set in fixes-link node and the MAC
+advertise that is supports pause.
+
+Results with this patch.
+
+Legend:
+- DT = 'Pause' is set in the fixed-link in devicetree.
+- validate() = ‘Yes’ means phylink_set(mask, Pause) is set in the
+ validate().
+- flow = results reported my link is Up line.
+
++-----+------------+-------+
+| DT | validate() | flow |
++-----+------------+-------+
+| Yes | Yes | rx/tx |
+| No | Yes | off |
+| Yes | No | off |
++-----+------------+-------+
+
+Fixes: 9525ae83959b ("phylink: add phylink infrastructure")
+Signed-off-by: René van Dorst <opensource@vdorst.com>
+Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ drivers/net/phy/phylink.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/phy/phylink.c
++++ b/drivers/net/phy/phylink.c
+@@ -195,6 +195,8 @@ static int phylink_parse_fixedlink(struc
+ __ETHTOOL_LINK_MODE_MASK_NBITS, true);
+ linkmode_zero(pl->supported);
+ phylink_set(pl->supported, MII);
++ phylink_set(pl->supported, Pause);
++ phylink_set(pl->supported, Asym_Pause);
+ if (s) {
+ __set_bit(s->bit, pl->supported);
+ } else {
diff --git a/patches.drivers/scsi-bfa-avoid-implicit-enum-conversion-in-bfad_im_post_vendor_event b/patches.drivers/scsi-bfa-avoid-implicit-enum-conversion-in-bfad_im_post_vendor_event
new file mode 100644
index 0000000000..c97bc5768f
--- /dev/null
+++ b/patches.drivers/scsi-bfa-avoid-implicit-enum-conversion-in-bfad_im_post_vendor_event
@@ -0,0 +1,63 @@
+From: Nathan Chancellor <natechancellor@gmail.com>
+Date: Thu, 27 Sep 2018 16:56:52 -0700
+Subject: scsi: bfa: Avoid implicit enum conversion in bfad_im_post_vendor_event
+Git-commit: 761c830ec7b3d0674b3ad89cefd77a692634e305
+Patch-mainline: v4.20-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+Clang warns when one enumerated type is implicitly converted to another.
+
+drivers/scsi/bfa/bfa_fcs_lport.c:379:26: warning: implicit conversion
+from enumeration type 'enum bfa_lport_aen_event' to different
+enumeration type 'enum bfa_ioc_aen_event' [-Wenum-conversion]
+ BFA_AEN_CAT_LPORT, event);
+ ^~~~~
+
+The root cause of these warnings is the bfad_im_post_vendor_event
+function, which expects a value from enum bfa_ioc_aen_event but there
+are multiple instances of values from enums bfa_port_aen_event,
+bfa_audit_aen_event, and bfa_lport_aen_event being used in this
+function.
+
+Given that this doesn't appear to be a problem since cat helps with
+differentiating the events, just change evt's type to int so that no
+conversion needs to happen and Clang won't warn. Update aen_type's type
+in bfa_aen_entry_s as members that hold enumerated types should be int.
+
+Link: https://github.com/ClangBuiltLinux/linux/issues/147
+Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
+Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfa_defs_svc.h | 2 +-
+ drivers/scsi/bfa/bfad_im.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfa_defs_svc.h b/drivers/scsi/bfa/bfa_defs_svc.h
+index 3d0c96a5c873..c19c26e0e405 100644
+--- a/drivers/scsi/bfa/bfa_defs_svc.h
++++ b/drivers/scsi/bfa/bfa_defs_svc.h
+@@ -1453,7 +1453,7 @@ union bfa_aen_data_u {
+ struct bfa_aen_entry_s {
+ struct list_head qe;
+ enum bfa_aen_category aen_category;
+- u32 aen_type;
++ int aen_type;
+ union bfa_aen_data_u aen_data;
+ u64 aen_tv_sec;
+ u64 aen_tv_usec;
+diff --git a/drivers/scsi/bfa/bfad_im.h b/drivers/scsi/bfa/bfad_im.h
+index e61ed8dad0b4..bd4ac187fd8e 100644
+--- a/drivers/scsi/bfa/bfad_im.h
++++ b/drivers/scsi/bfa/bfad_im.h
+@@ -143,7 +143,7 @@ struct bfad_im_s {
+ static inline void bfad_im_post_vendor_event(struct bfa_aen_entry_s *entry,
+ struct bfad_s *drv, int cnt,
+ enum bfa_aen_category cat,
+- enum bfa_ioc_aen_event evt)
++ int evt)
+ {
+ struct timespec64 ts;
+
+
diff --git a/patches.drivers/scsi-bfa-bfa_fcs_lport-mark-expected-switch-fall-throughs b/patches.drivers/scsi-bfa-bfa_fcs_lport-mark-expected-switch-fall-throughs
new file mode 100644
index 0000000000..2b8f17196e
--- /dev/null
+++ b/patches.drivers/scsi-bfa-bfa_fcs_lport-mark-expected-switch-fall-throughs
@@ -0,0 +1,48 @@
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Tue, 27 Nov 2018 22:27:15 -0600
+Subject: scsi: bfa: bfa_fcs_lport: Mark expected switch fall-throughs
+Git-commit: 8425811b8d95d441499d963b7d09b7910c630f71
+Patch-mainline: v5.1-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases where
+we are expecting to fall through.
+
+Notice that, in this particular case, I replaced "!!! fall through !!!"
+with a "fall through" annotation, which is what GCC is expecting to find.
+
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Acked-by: Sudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfa_fcs_lport.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
+index b4f2c1d8742e..646f09f66443 100644
+--- a/drivers/scsi/bfa/bfa_fcs_lport.c
++++ b/drivers/scsi/bfa/bfa_fcs_lport.c
+@@ -6430,9 +6430,7 @@ bfa_fcs_vport_sm_logo_for_stop(struct bfa_fcs_vport_s *vport,
+ switch (event) {
+ case BFA_FCS_VPORT_SM_OFFLINE:
+ bfa_sm_send_event(vport->lps, BFA_LPS_SM_OFFLINE);
+- /*
+- * !!! fall through !!!
+- */
++ /* fall through */
+
+ case BFA_FCS_VPORT_SM_RSP_OK:
+ case BFA_FCS_VPORT_SM_RSP_ERROR:
+@@ -6458,9 +6456,7 @@ bfa_fcs_vport_sm_logo(struct bfa_fcs_vport_s *vport,
+ switch (event) {
+ case BFA_FCS_VPORT_SM_OFFLINE:
+ bfa_sm_send_event(vport->lps, BFA_LPS_SM_OFFLINE);
+- /*
+- * !!! fall through !!!
+- */
++ /* fall through */
+
+ case BFA_FCS_VPORT_SM_RSP_OK:
+ case BFA_FCS_VPORT_SM_RSP_ERROR:
+
diff --git a/patches.drivers/scsi-bfa-bfa_fcs_rport-mark-expected-switch-fall-throughs b/patches.drivers/scsi-bfa-bfa_fcs_rport-mark-expected-switch-fall-throughs
new file mode 100644
index 0000000000..ac5a80bcd0
--- /dev/null
+++ b/patches.drivers/scsi-bfa-bfa_fcs_rport-mark-expected-switch-fall-throughs
@@ -0,0 +1,96 @@
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Tue, 27 Nov 2018 22:27:23 -0600
+Subject: scsi: bfa: bfa_fcs_rport: Mark expected switch fall-throughs
+Git-commit: d14e4cd45ac83edf96b249a222b02344889fb6f9
+Patch-mainline: v5.1-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases where
+we are expecting to fall through.
+
+Notice that I replaced "!! fall through !!" and "!!! fall through !!!"
+comments with "fall through" annotations, which is what GCC is expecting to
+find.
+
+Addresses-Coverity-ID: 744899 ("Missing break in switch")
+Addresses-Coverity-ID: 744900 ("Missing break in switch")
+Addresses-Coverity-ID: 744901 ("Missing break in switch")
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Acked-by: Sudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfa_fcs_rport.c | 19 +++++++------------
+ 1 file changed, 7 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfa_fcs_rport.c b/drivers/scsi/bfa/bfa_fcs_rport.c
+index de50349a39ce..1e400f2aaece 100644
+--- a/drivers/scsi/bfa/bfa_fcs_rport.c
++++ b/drivers/scsi/bfa/bfa_fcs_rport.c
+@@ -427,17 +427,13 @@ bfa_fcs_rport_sm_plogi(struct bfa_fcs_rport_s *rport, enum rport_event event)
+
+ case RPSM_EVENT_LOGO_RCVD:
+ bfa_fcs_rport_send_logo_acc(rport);
+- /*
+- * !! fall through !!
+- */
++ /* fall through */
+ case RPSM_EVENT_PRLO_RCVD:
+ if (rport->prlo == BFA_TRUE)
+ bfa_fcs_rport_send_prlo_acc(rport);
+
+ bfa_fcxp_discard(rport->fcxp);
+- /*
+- * !! fall through !!
+- */
++ /* fall through */
+ case RPSM_EVENT_FAILED:
+ if (rport->plogi_retries < BFA_FCS_RPORT_MAX_RETRIES) {
+ rport->plogi_retries++;
+@@ -868,9 +864,7 @@ bfa_fcs_rport_sm_adisc_online(struct bfa_fcs_rport_s *rport,
+ * At least go offline when a PLOGI is received.
+ */
+ bfa_fcxp_discard(rport->fcxp);
+- /*
+- * !!! fall through !!!
+- */
++ /* fall through */
+
+ case RPSM_EVENT_FAILED:
+ case RPSM_EVENT_ADDRESS_CHANGE:
+@@ -1056,6 +1050,7 @@ bfa_fcs_rport_sm_fc4_logosend(struct bfa_fcs_rport_s *rport,
+
+ case RPSM_EVENT_LOGO_RCVD:
+ bfa_fcs_rport_send_logo_acc(rport);
++ /* fall through */
+ case RPSM_EVENT_PRLO_RCVD:
+ if (rport->prlo == BFA_TRUE)
+ bfa_fcs_rport_send_prlo_acc(rport);
+@@ -1144,9 +1139,7 @@ bfa_fcs_rport_sm_hcb_offline(struct bfa_fcs_rport_s *rport,
+ bfa_fcs_rport_send_plogiacc(rport, NULL);
+ break;
+ }
+- /*
+- * !! fall through !!
+- */
++ /* fall through */
+
+ case RPSM_EVENT_ADDRESS_CHANGE:
+ if (!bfa_fcs_lport_is_online(rport->port)) {
+@@ -1303,6 +1296,7 @@ bfa_fcs_rport_sm_hcb_logosend(struct bfa_fcs_rport_s *rport,
+
+ case RPSM_EVENT_LOGO_RCVD:
+ bfa_fcs_rport_send_logo_acc(rport);
++ /* fall through */
+ case RPSM_EVENT_PRLO_RCVD:
+ if (rport->prlo == BFA_TRUE)
+ bfa_fcs_rport_send_prlo_acc(rport);
+@@ -1346,6 +1340,7 @@ bfa_fcs_rport_sm_logo_sending(struct bfa_fcs_rport_s *rport,
+
+ case RPSM_EVENT_LOGO_RCVD:
+ bfa_fcs_rport_send_logo_acc(rport);
++ /* fall through */
+ case RPSM_EVENT_PRLO_RCVD:
+ if (rport->prlo == BFA_TRUE)
+ bfa_fcs_rport_send_prlo_acc(rport);
+
diff --git a/patches.drivers/scsi-bfa-bfa_ioc-mark-expected-switch-fall-throughs b/patches.drivers/scsi-bfa-bfa_ioc-mark-expected-switch-fall-throughs
new file mode 100644
index 0000000000..e1a3a7ec29
--- /dev/null
+++ b/patches.drivers/scsi-bfa-bfa_ioc-mark-expected-switch-fall-throughs
@@ -0,0 +1,58 @@
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Tue, 27 Nov 2018 22:27:32 -0600
+Subject: scsi: bfa: bfa_ioc: Mark expected switch fall-throughs
+Git-commit: f1b1dceedd7b046d04031a187aa1d51a62d8847c
+Patch-mainline: v5.1-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases where
+we are expecting to fall through.
+
+Notice that, in this particular case, I replaced "!!! fall through !!!"
+comment with "fall through" annotations, which is what GCC is expecting to
+find.
+
+Addresses-Coverity-ID: 146155 ("Missing break in switch")
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Acked-by: Sudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfa_ioc.c | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfa_ioc.c b/drivers/scsi/bfa/bfa_ioc.c
+index 9631877aba4f..79a55c3615be 100644
+--- a/drivers/scsi/bfa/bfa_ioc.c
++++ b/drivers/scsi/bfa/bfa_ioc.c
+@@ -978,9 +978,7 @@ bfa_iocpf_sm_enabling(struct bfa_iocpf_s *iocpf, enum iocpf_event event)
+
+ case IOCPF_E_INITFAIL:
+ bfa_iocpf_timer_stop(ioc);
+- /*
+- * !!! fall through !!!
+- */
++ /* fall through */
+
+ case IOCPF_E_TIMEOUT:
+ writel(1, ioc->ioc_regs.ioc_sem_reg);
+@@ -1056,9 +1054,7 @@ bfa_iocpf_sm_disabling(struct bfa_iocpf_s *iocpf, enum iocpf_event event)
+
+ case IOCPF_E_FAIL:
+ bfa_iocpf_timer_stop(ioc);
+- /*
+- * !!! fall through !!!
+- */
++ /* fall through */
+
+ case IOCPF_E_TIMEOUT:
+ bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
+@@ -6007,6 +6003,7 @@ bfa_dconf_sm_final_sync(struct bfa_dconf_mod_s *dconf,
+ case BFA_DCONF_SM_IOCDISABLE:
+ case BFA_DCONF_SM_FLASH_COMP:
+ bfa_timer_stop(&dconf->timer);
++ /* fall through */
+ case BFA_DCONF_SM_TIMEOUT:
+ bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
+ bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
+
diff --git a/patches.drivers/scsi-bfa-clean-up-a-couple-of-indentation-issues b/patches.drivers/scsi-bfa-clean-up-a-couple-of-indentation-issues
new file mode 100644
index 0000000000..4b0e4bc38c
--- /dev/null
+++ b/patches.drivers/scsi-bfa-clean-up-a-couple-of-indentation-issues
@@ -0,0 +1,40 @@
+From: Colin Ian King <colin.king@canonical.com>
+Date: Sat, 15 Dec 2018 14:28:09 +0000
+Subject: scsi: bfa: clean up a couple of indentation issues
+Git-commit: 009b7156149ab370ebd3b7477aac15a0fd3550e9
+Patch-mainline: v5.0-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+There is a break statement with an extra space that needs removed and a
+call to bfa_trc that is indented one level too much. Fix these.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfa_ioc.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfa_ioc.c b/drivers/scsi/bfa/bfa_ioc.c
+index 16d3aeb0e572..9631877aba4f 100644
+--- a/drivers/scsi/bfa/bfa_ioc.c
++++ b/drivers/scsi/bfa/bfa_ioc.c
+@@ -3819,7 +3819,7 @@ bfa_sfp_scn(struct bfa_sfp_s *sfp, struct bfi_mbmsg_s *msg)
+ sfp->state = BFA_SFP_STATE_REMOVED;
+ sfp->data_valid = 0;
+ bfa_sfp_scn_aen_post(sfp, rsp);
+- break;
++ break;
+ case BFA_SFP_SCN_FAILED:
+ sfp->state = BFA_SFP_STATE_FAILED;
+ sfp->data_valid = 0;
+@@ -5763,7 +5763,7 @@ bfa_phy_intr(void *phyarg, struct bfi_mbmsg_s *msg)
+ (struct bfa_phy_stats_s *) phy->ubuf;
+ bfa_phy_ntoh32((u32 *)stats, (u32 *)phy->dbuf_kva,
+ sizeof(struct bfa_phy_stats_s));
+- bfa_trc(phy, stats->status);
++ bfa_trc(phy, stats->status);
+ }
+
+ phy->status = status;
+
diff --git a/patches.drivers/scsi-bfa-no-need-to-check-return-value-of-debugfs_create-functions b/patches.drivers/scsi-bfa-no-need-to-check-return-value-of-debugfs_create-functions
new file mode 100644
index 0000000000..6f63fa69af
--- /dev/null
+++ b/patches.drivers/scsi-bfa-no-need-to-check-return-value-of-debugfs_create-functions
@@ -0,0 +1,72 @@
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Tue, 22 Jan 2019 16:09:00 +0100
+Subject: scsi: bfa: no need to check return value of debugfs_create functions
+Git-commit: 8389f1281cd5cc7cc95218516800f42dddfd9111
+Patch-mainline: v5.1-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+When calling debugfs functions, there is no need to ever check the return
+value. The function can work or not, but the code logic should never do
+something different based on this.
+
+[mkp: removed unused label]
+
+Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
+Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
+Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
+Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
+Cc: linux-scsi@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfad_debugfs.c | 18 ------------------
+ 1 file changed, 18 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfad_debugfs.c b/drivers/scsi/bfa/bfad_debugfs.c
+index 349cfe7d055e..bfcd87c0dc74 100644
+--- a/drivers/scsi/bfa/bfad_debugfs.c
++++ b/drivers/scsi/bfa/bfad_debugfs.c
+@@ -460,11 +460,6 @@ bfad_debugfs_init(struct bfad_port_s *port)
+ if (!bfa_debugfs_root) {
+ bfa_debugfs_root = debugfs_create_dir("bfa", NULL);
+ atomic_set(&bfa_debugfs_port_count, 0);
+- if (!bfa_debugfs_root) {
+- printk(KERN_WARNING
+- "BFA debugfs root dir creation failed\n");
+- goto err;
+- }
+ }
+
+ /* Setup the pci_dev debugfs directory for the port */
+@@ -472,12 +467,6 @@ bfad_debugfs_init(struct bfad_port_s *port)
+ if (!port->port_debugfs_root) {
+ port->port_debugfs_root =
+ debugfs_create_dir(name, bfa_debugfs_root);
+- if (!port->port_debugfs_root) {
+- printk(KERN_WARNING
+- "bfa %s: debugfs root creation failed\n",
+- bfad->pci_name);
+- goto err;
+- }
+
+ atomic_inc(&bfa_debugfs_port_count);
+
+@@ -489,16 +478,9 @@ bfad_debugfs_init(struct bfad_port_s *port)
+ port->port_debugfs_root,
+ port,
+ file->fops);
+- if (!bfad->bfad_dentry_files[i]) {
+- printk(KERN_WARNING
+- "bfa %s: debugfs %s creation failed\n",
+- bfad->pci_name, file->name);
+- goto err;
+- }
+ }
+ }
+
+-err:
+ return;
+ }
+
+
diff --git a/patches.drivers/scsi-bfa-remove-scsiresult-macro b/patches.drivers/scsi-bfa-remove-scsiresult-macro
new file mode 100644
index 0000000000..b471ea3312
--- /dev/null
+++ b/patches.drivers/scsi-bfa-remove-scsiresult-macro
@@ -0,0 +1,97 @@
+From: Johannes Thumshirn <jthumshirn@suse.de>
+Date: Thu, 5 Jul 2018 13:01:38 +0200
+Subject: scsi: bfa: remove ScsiResult macro
+Git-commit: 55c9d37165d28f081b7ba11fc2a7938d4bbb75c6
+Patch-mainline: v4.19-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+Remove the ScsiResult macro and open code it on all call sites.
+
+This will make subsequent refactoring in this area easier.
+
+Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfad_im.c | 19 ++++++++-----------
+ drivers/scsi/bfa/bfad_im.h | 1 -
+ 2 files changed, 8 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c
+index c05d6e91e4bd..c4a33317d344 100644
+--- a/drivers/scsi/bfa/bfad_im.c
++++ b/drivers/scsi/bfa/bfad_im.c
+@@ -70,21 +70,18 @@ bfa_cb_ioim_done(void *drv, struct bfad_ioim_s *dio,
+ host_status = DID_ERROR;
+ }
+ }
+- cmnd->result = ScsiResult(host_status, scsi_status);
++ cmnd->result = host_status << 16 | scsi_status;
+
+ break;
+
+ case BFI_IOIM_STS_TIMEDOUT:
+- host_status = DID_TIME_OUT;
+- cmnd->result = ScsiResult(host_status, 0);
++ cmnd->result = DID_TIME_OUT << 16;
+ break;
+ case BFI_IOIM_STS_PATHTOV:
+- host_status = DID_TRANSPORT_DISRUPTED;
+- cmnd->result = ScsiResult(host_status, 0);
++ cmnd->result = DID_TRANSPORT_DISRUPTED << 16;
+ break;
+ default:
+- host_status = DID_ERROR;
+- cmnd->result = ScsiResult(host_status, 0);
++ cmnd->result = DID_ERROR << 16;
+ }
+
+ /* Unmap DMA, if host is NULL, it means a scsi passthru cmd */
+@@ -117,7 +114,7 @@ bfa_cb_ioim_good_comp(void *drv, struct bfad_ioim_s *dio)
+ struct bfad_itnim_data_s *itnim_data;
+ struct bfad_itnim_s *itnim;
+
+- cmnd->result = ScsiResult(DID_OK, SCSI_STATUS_GOOD);
++ cmnd->result = DID_OK << 16 | SCSI_STATUS_GOOD;
+
+ /* Unmap DMA, if host is NULL, it means a scsi passthru cmd */
+ if (cmnd->device->host != NULL)
+@@ -144,7 +141,7 @@ bfa_cb_ioim_abort(void *drv, struct bfad_ioim_s *dio)
+ struct scsi_cmnd *cmnd = (struct scsi_cmnd *)dio;
+ struct bfad_s *bfad = drv;
+
+- cmnd->result = ScsiResult(DID_ERROR, 0);
++ cmnd->result = DID_ERROR << 16;
+
+ /* Unmap DMA, if host is NULL, it means a scsi passthru cmd */
+ if (cmnd->device->host != NULL)
+@@ -1253,14 +1250,14 @@ bfad_im_queuecommand_lck(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd
+ printk(KERN_WARNING
+ "bfad%d, queuecommand %p %x failed, BFA stopped\n",
+ bfad->inst_no, cmnd, cmnd->cmnd[0]);
+- cmnd->result = ScsiResult(DID_NO_CONNECT, 0);
++ cmnd->result = DID_NO_CONNECT << 16;
+ goto out_fail_cmd;
+ }
+
+
+ itnim = itnim_data->itnim;
+ if (!itnim) {
+- cmnd->result = ScsiResult(DID_IMM_RETRY, 0);
++ cmnd->result = DID_IMM_RETRY << 16;
+ goto out_fail_cmd;
+ }
+
+diff --git a/drivers/scsi/bfa/bfad_im.h b/drivers/scsi/bfa/bfad_im.h
+index af66275570c3..e61ed8dad0b4 100644
+--- a/drivers/scsi/bfa/bfad_im.h
++++ b/drivers/scsi/bfa/bfad_im.h
+@@ -44,7 +44,6 @@ u32 bfad_im_supported_speeds(struct bfa_s *bfa);
+ #define MAX_FCP_LUN 16384
+ #define BFAD_TARGET_RESET_TMO 60
+ #define BFAD_LUN_RESET_TMO 60
+-#define ScsiResult(host_code, scsi_code) (((host_code) << 16) | scsi_code)
+ #define BFA_QUEUE_FULL_RAMP_UP_TIME 120
+
+ /*
+
diff --git a/patches.drivers/scsi-bfa-remove-unused-functions b/patches.drivers/scsi-bfa-remove-unused-functions
new file mode 100644
index 0000000000..cfa1a7b003
--- /dev/null
+++ b/patches.drivers/scsi-bfa-remove-unused-functions
@@ -0,0 +1,235 @@
+From: Nathan Chancellor <natechancellor@gmail.com>
+Date: Thu, 20 Sep 2018 16:02:12 -0700
+Subject: scsi: bfa: Remove unused functions
+Git-commit: 6498cbc57f258bc3d079cdae6c22583ce3c174d0
+Patch-mainline: v4.20-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+Clang warns when a variable is assigned to itself.
+
+drivers/scsi/bfa/bfa_fcbuild.c:199:6: warning: explicitly assigning
+value of variable of type 'int' to itself [-Wself-assign]
+ len = len;
+ ~~~ ^ ~~~
+drivers/scsi/bfa/bfa_fcbuild.c:838:6: warning: explicitly assigning
+value of variable of type 'int' to itself [-Wself-assign]
+ len = len;
+ ~~~ ^ ~~~
+drivers/scsi/bfa/bfa_fcbuild.c:917:6: warning: explicitly assigning
+value of variable of type 'int' to itself [-Wself-assign]
+ len = len;
+ ~~~ ^ ~~~
+drivers/scsi/bfa/bfa_fcbuild.c:981:6: warning: explicitly assigning
+value of variable of type 'int' to itself [-Wself-assign]
+ len = len;
+ ~~~ ^ ~~~
+drivers/scsi/bfa/bfa_fcbuild.c:1008:6: warning: explicitly assigning
+value of variable of type 'int' to itself [-Wself-assign]
+ len = len;
+ ~~~ ^ ~~~
+5 warnings generated.
+
+This construct is usually used to avoid unused variable warnings, which
+I assume is the case here. -Wunused-parameter is hidden behind -Wextra
+with GCC 4.6, which is the minimum version to compile the kernel as of
+commit cafa0010cd51 ("Raise the minimum required gcc version to 4.6").
+
+However, upon further inspection, these functions aren't actually used
+anywhere; they're just defined. Rather than just removing the self
+assignments, remove all of this dead code.
+
+Link: https://github.com/ClangBuiltLinux/linux/issues/148
+Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfa_fcbuild.c | 108 -----------------------------------------
+ drivers/scsi/bfa/bfa_fcbuild.h | 9 ----
+ 2 files changed, 117 deletions(-)
+
+diff --git a/drivers/scsi/bfa/bfa_fcbuild.c b/drivers/scsi/bfa/bfa_fcbuild.c
+index d3b00a475aeb..2de5d514e99c 100644
+--- a/drivers/scsi/bfa/bfa_fcbuild.c
++++ b/drivers/scsi/bfa/bfa_fcbuild.c
+@@ -190,27 +190,6 @@ fc_els_rsp_build(struct fchs_s *fchs, u32 d_id, u32 s_id, __be16 ox_id)
+ fchs->ox_id = ox_id;
+ }
+
+-enum fc_parse_status
+-fc_els_rsp_parse(struct fchs_s *fchs, int len)
+-{
+- struct fc_els_cmd_s *els_cmd = (struct fc_els_cmd_s *) (fchs + 1);
+- struct fc_ls_rjt_s *ls_rjt = (struct fc_ls_rjt_s *) els_cmd;
+-
+- len = len;
+-
+- switch (els_cmd->els_code) {
+- case FC_ELS_LS_RJT:
+- if (ls_rjt->reason_code == FC_LS_RJT_RSN_LOGICAL_BUSY)
+- return FC_PARSE_BUSY;
+- else
+- return FC_PARSE_FAILURE;
+-
+- case FC_ELS_ACC:
+- return FC_PARSE_OK;
+- }
+- return FC_PARSE_OK;
+-}
+-
+ static void
+ fc_bls_rsp_build(struct fchs_s *fchs, u32 d_id, u32 s_id, __be16 ox_id)
+ {
+@@ -830,18 +809,6 @@ fc_rpsc_acc_build(struct fchs_s *fchs, struct fc_rpsc_acc_s *rpsc_acc,
+ return sizeof(struct fc_rpsc_acc_s);
+ }
+
+-u16
+-fc_logo_rsp_parse(struct fchs_s *fchs, int len)
+-{
+- struct fc_els_cmd_s *els_cmd = (struct fc_els_cmd_s *) (fchs + 1);
+-
+- len = len;
+- if (els_cmd->els_code != FC_ELS_ACC)
+- return FC_PARSE_FAILURE;
+-
+- return FC_PARSE_OK;
+-}
+-
+ u16
+ fc_pdisc_build(struct fchs_s *fchs, u32 d_id, u32 s_id, u16 ox_id,
+ wwn_t port_name, wwn_t node_name, u16 pdu_size)
+@@ -907,40 +874,6 @@ fc_prlo_build(struct fchs_s *fchs, u32 d_id, u32 s_id, u16 ox_id,
+ return be16_to_cpu(prlo->payload_len);
+ }
+
+-u16
+-fc_prlo_rsp_parse(struct fchs_s *fchs, int len)
+-{
+- struct fc_prlo_acc_s *prlo = (struct fc_prlo_acc_s *) (fchs + 1);
+- int num_pages = 0;
+- int page = 0;
+-
+- len = len;
+-
+- if (prlo->command != FC_ELS_ACC)
+- return FC_PARSE_FAILURE;
+-
+- num_pages = ((be16_to_cpu(prlo->payload_len)) - 4) / 16;
+-
+- for (page = 0; page < num_pages; page++) {
+- if (prlo->prlo_acc_params[page].type != FC_TYPE_FCP)
+- return FC_PARSE_FAILURE;
+-
+- if (prlo->prlo_acc_params[page].opa_valid != 0)
+- return FC_PARSE_FAILURE;
+-
+- if (prlo->prlo_acc_params[page].rpa_valid != 0)
+- return FC_PARSE_FAILURE;
+-
+- if (prlo->prlo_acc_params[page].orig_process_assc != 0)
+- return FC_PARSE_FAILURE;
+-
+- if (prlo->prlo_acc_params[page].resp_process_assc != 0)
+- return FC_PARSE_FAILURE;
+- }
+- return FC_PARSE_OK;
+-
+-}
+-
+ u16
+ fc_tprlo_build(struct fchs_s *fchs, u32 d_id, u32 s_id, u16 ox_id,
+ int num_pages, enum fc_tprlo_type tprlo_type, u32 tpr_id)
+@@ -971,47 +904,6 @@ fc_tprlo_build(struct fchs_s *fchs, u32 d_id, u32 s_id, u16 ox_id,
+ return be16_to_cpu(tprlo->payload_len);
+ }
+
+-u16
+-fc_tprlo_rsp_parse(struct fchs_s *fchs, int len)
+-{
+- struct fc_tprlo_acc_s *tprlo = (struct fc_tprlo_acc_s *) (fchs + 1);
+- int num_pages = 0;
+- int page = 0;
+-
+- len = len;
+-
+- if (tprlo->command != FC_ELS_ACC)
+- return FC_PARSE_ACC_INVAL;
+-
+- num_pages = (be16_to_cpu(tprlo->payload_len) - 4) / 16;
+-
+- for (page = 0; page < num_pages; page++) {
+- if (tprlo->tprlo_acc_params[page].type != FC_TYPE_FCP)
+- return FC_PARSE_NOT_FCP;
+- if (tprlo->tprlo_acc_params[page].opa_valid != 0)
+- return FC_PARSE_OPAFLAG_INVAL;
+- if (tprlo->tprlo_acc_params[page].rpa_valid != 0)
+- return FC_PARSE_RPAFLAG_INVAL;
+- if (tprlo->tprlo_acc_params[page].orig_process_assc != 0)
+- return FC_PARSE_OPA_INVAL;
+- if (tprlo->tprlo_acc_params[page].resp_process_assc != 0)
+- return FC_PARSE_RPA_INVAL;
+- }
+- return FC_PARSE_OK;
+-}
+-
+-enum fc_parse_status
+-fc_rrq_rsp_parse(struct fchs_s *fchs, int len)
+-{
+- struct fc_els_cmd_s *els_cmd = (struct fc_els_cmd_s *) (fchs + 1);
+-
+- len = len;
+- if (els_cmd->els_code != FC_ELS_ACC)
+- return FC_PARSE_FAILURE;
+-
+- return FC_PARSE_OK;
+-}
+-
+ u16
+ fc_ba_rjt_build(struct fchs_s *fchs, u32 d_id, u32 s_id, __be16 ox_id,
+ u32 reason_code, u32 reason_expl)
+diff --git a/drivers/scsi/bfa/bfa_fcbuild.h b/drivers/scsi/bfa/bfa_fcbuild.h
+index b109a8813401..ac08d0b5b89a 100644
+--- a/drivers/scsi/bfa/bfa_fcbuild.h
++++ b/drivers/scsi/bfa/bfa_fcbuild.h
+@@ -163,7 +163,6 @@ enum fc_parse_status fc_abts_rsp_parse(struct fchs_s *buf, int len);
+
+ u16 fc_rrq_build(struct fchs_s *buf, struct fc_rrq_s *rrq, u32 d_id,
+ u32 s_id, u16 ox_id, u16 rrq_oxid);
+-enum fc_parse_status fc_rrq_rsp_parse(struct fchs_s *buf, int len);
+
+ u16 fc_rspnid_build(struct fchs_s *fchs, void *pld, u32 s_id,
+ u16 ox_id, u8 *name);
+@@ -276,8 +275,6 @@ void fc_get_fc4type_bitmask(u8 fc4_type, u8 *bit_mask);
+ void fc_els_req_build(struct fchs_s *fchs, u32 d_id, u32 s_id,
+ __be16 ox_id);
+
+-enum fc_parse_status fc_els_rsp_parse(struct fchs_s *fchs, int len);
+-
+ enum fc_parse_status fc_plogi_rsp_parse(struct fchs_s *fchs, int len,
+ wwn_t port_name);
+
+@@ -297,8 +294,6 @@ u16 fc_tprlo_acc_build(struct fchs_s *fchs, struct fc_tprlo_acc_s *tprlo_acc,
+ u16 fc_prlo_acc_build(struct fchs_s *fchs, struct fc_prlo_acc_s *prlo_acc,
+ u32 d_id, u32 s_id, __be16 ox_id, int num_pages);
+
+-u16 fc_logo_rsp_parse(struct fchs_s *fchs, int len);
+-
+ u16 fc_pdisc_build(struct fchs_s *fchs, u32 d_id, u32 s_id,
+ u16 ox_id, wwn_t port_name, wwn_t node_name,
+ u16 pdu_size);
+@@ -308,14 +303,10 @@ u16 fc_pdisc_rsp_parse(struct fchs_s *fchs, int len, wwn_t port_name);
+ u16 fc_prlo_build(struct fchs_s *fchs, u32 d_id, u32 s_id,
+ u16 ox_id, int num_pages);
+
+-u16 fc_prlo_rsp_parse(struct fchs_s *fchs, int len);
+-
+ u16 fc_tprlo_build(struct fchs_s *fchs, u32 d_id, u32 s_id,
+ u16 ox_id, int num_pages, enum fc_tprlo_type tprlo_type,
+ u32 tpr_id);
+
+-u16 fc_tprlo_rsp_parse(struct fchs_s *fchs, int len);
+-
+ u16 fc_ba_rjt_build(struct fchs_s *fchs, u32 d_id, u32 s_id,
+ __be16 ox_id, u32 reason_code, u32 reason_expl);
+
+
diff --git a/patches.drivers/scsi-bfa-use-dma_set_mask_and_coherent b/patches.drivers/scsi-bfa-use-dma_set_mask_and_coherent
new file mode 100644
index 0000000000..797b133cbe
--- /dev/null
+++ b/patches.drivers/scsi-bfa-use-dma_set_mask_and_coherent
@@ -0,0 +1,52 @@
+From: Christoph Hellwig <hch@lst.de>
+Date: Thu, 18 Oct 2018 15:10:14 +0200
+Subject: scsi: bfa: use dma_set_mask_and_coherent
+Git-commit: a69b080025ea3c7cd15cc91a9188475bce39e921
+Patch-mainline: v5.0-rc1
+References: bsc#1136496 jsc#SLE-4698
+
+The driver currently uses pci_set_dma_mask despite otherwise using the
+generic DMA API. Switch it over to the better generic DMA API helper and
+also ensure we set the coherent mask as well in the resume path.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfad.c | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+--- a/drivers/scsi/bfa/bfad.c
++++ b/drivers/scsi/bfa/bfad.c
+@@ -742,14 +742,10 @@ bfad_pci_init(struct pci_dev *pdev, stru
+
+ pci_set_master(pdev);
+
+-
+- if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) != 0) ||
+- (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)) != 0)) {
+- if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) ||
+- (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) != 0)) {
+- printk(KERN_ERR "pci_set_dma_mask fail %p\n", pdev);
+- goto out_release_region;
+- }
++ if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
++ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
++ printk(KERN_ERR "dma_set_mask_and_coherent fail %p\n", pdev);
++ goto out_release_region;
+ }
+
+ /* Enable PCIE Advanced Error Recovery (AER) if kernel supports */
+@@ -1568,9 +1564,9 @@ bfad_pci_slot_reset(struct pci_dev *pdev
+ pci_save_state(pdev);
+ pci_set_master(pdev);
+
+- if (pci_set_dma_mask(bfad->pcidev, DMA_BIT_MASK(64)) != 0)
+- if (pci_set_dma_mask(bfad->pcidev, DMA_BIT_MASK(32)) != 0)
+- goto out_disable_device;
++ if (dma_set_mask_and_coherent(&bfad->pcidev->dev, DMA_BIT_MASK(64)) ||
++ dma_set_mask_and_coherent(&bfad->pcidev->dev, DMA_BIT_MASK(32)))
++ goto out_disable_device;
+
+ pci_cleanup_aer_uncorrect_error_status(pdev);
+
diff --git a/patches.drivers/scsi-bnx2fc-do-not-allow-both-a-cleanup-completion-and-abort-completion-for-the-same-request b/patches.drivers/scsi-bnx2fc-do-not-allow-both-a-cleanup-completion-and-abort-completion-for-the-same-request
new file mode 100644
index 0000000000..6f1f1c2220
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-do-not-allow-both-a-cleanup-completion-and-abort-completion-for-the-same-request
@@ -0,0 +1,89 @@
+From: Saurav Kashyap <skashyap@marvell.com>
+Date: Mon, 24 Jun 2019 01:29:58 -0700
+Subject: scsi: bnx2fc: Do not allow both a cleanup completion and abort
+ completion for the same request
+Git-commit: 25ad7394c7783a5bc73f7a930bda3a7a7f3195cb
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+If firmware sends either cleanup or abort completion, it means other won't
+be sent. Clean out flags for other as well.
+
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc.h | 1 +
+ drivers/scsi/bnx2fc/bnx2fc_io.c | 32 ++++++++++++++++++++++++++++++++
+ 2 files changed, 33 insertions(+)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
+index 5d7e21a818c5..14cc6921a1b8 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc.h
++++ b/drivers/scsi/bnx2fc/bnx2fc.h
+@@ -457,6 +457,7 @@ struct bnx2fc_cmd {
+ #define BNX2FC_FLAG_ELS_TIMEOUT 0xb
+ #define BNX2FC_FLAG_CMD_LOST 0xc
+ #define BNX2FC_FLAG_SRR_SENT 0xd
++#define BNX2FC_FLAG_ISSUE_CLEANUP_REQ 0xe
+ u8 rec_retry;
+ u8 srr_retry;
+ u32 srr_offset;
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
+index 88c392ba80a9..d7eb5e16efd3 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
+@@ -1048,6 +1048,9 @@ int bnx2fc_initiate_cleanup(struct bnx2fc_cmd *io_req)
+ /* Obtain free SQ entry */
+ bnx2fc_add_2_sq(tgt, xid);
+
++ /* Set flag that cleanup request is pending with the firmware */
++ set_bit(BNX2FC_FLAG_ISSUE_CLEANUP_REQ, &io_req->req_flags);
++
+ /* Ring doorbell */
+ bnx2fc_ring_doorbell(tgt);
+
+@@ -1324,6 +1327,25 @@ void bnx2fc_process_cleanup_compl(struct bnx2fc_cmd *io_req,
+ BNX2FC_IO_DBG(io_req, "Entered process_cleanup_compl "
+ "refcnt = %d, cmd_type = %d\n",
+ kref_read(&io_req->refcount), io_req->cmd_type);
++ /*
++ * Test whether there is a cleanup request pending. If not just
++ * exit.
++ */
++ if (!test_and_clear_bit(BNX2FC_FLAG_ISSUE_CLEANUP_REQ,
++ &io_req->req_flags))
++ return;
++ /*
++ * If we receive a cleanup completion for this request then the
++ * firmware will not give us an abort completion for this request
++ * so clear any ABTS pending flags.
++ */
++ if (test_bit(BNX2FC_FLAG_ISSUE_ABTS, &io_req->req_flags) &&
++ !test_bit(BNX2FC_FLAG_ABTS_DONE, &io_req->req_flags)) {
++ set_bit(BNX2FC_FLAG_ABTS_DONE, &io_req->req_flags);
++ if (io_req->wait_for_abts_comp)
++ complete(&io_req->abts_done);
++ }
++
+ bnx2fc_scsi_done(io_req, DID_ERROR);
+ kref_put(&io_req->refcount, bnx2fc_cmd_release);
+ if (io_req->wait_for_cleanup_comp)
+@@ -1351,6 +1373,16 @@ void bnx2fc_process_abts_compl(struct bnx2fc_cmd *io_req,
+ return;
+ }
+
++ /*
++ * If we receive an ABTS completion here then we will not receive
++ * a cleanup completion so clear any cleanup pending flags.
++ */
++ if (test_bit(BNX2FC_FLAG_ISSUE_CLEANUP_REQ, &io_req->req_flags)) {
++ clear_bit(BNX2FC_FLAG_ISSUE_CLEANUP_REQ, &io_req->req_flags);
++ if (io_req->wait_for_cleanup_comp)
++ complete(&io_req->cleanup_done);
++ }
++
+ /* Do not issue RRQ as this IO is already cleanedup */
+ if (test_and_set_bit(BNX2FC_FLAG_IO_CLEANUP,
+ &io_req->req_flags))
+
diff --git a/patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_rec b/patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_rec
new file mode 100644
index 0000000000..120f14781f
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_rec
@@ -0,0 +1,40 @@
+From: Lin Yi <teroincn@163.com>
+Date: Tue, 25 Jun 2019 10:34:16 +0800
+Subject: scsi: bnx2fc: fix bnx2fc_cmd refcount imbalance in send_rec
+Git-commit: 177709c0702e7351dae3b9b4f9de3140a9ee3a06
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+If cb_arg alloc failed, we can't release the struct orig_io_req refcount
+before we take its refcount. As Saurav said, move the rec_err label down
+to avoid unnecessary refcount release and nullptr free.
+
+Signed-off-by: Lin Yi <teroincn@163.com>
+Acked-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc_els.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c
+index 8de5b70f6727..9a8e40bc694b 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_els.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_els.c
+@@ -610,7 +610,6 @@ int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req)
+ rc = bnx2fc_initiate_els(tgt, ELS_REC, &rec, sizeof(rec),
+ bnx2fc_rec_compl, cb_arg,
+ r_a_tov);
+-rec_err:
+ if (rc) {
+ BNX2FC_IO_DBG(orig_io_req, "REC failed - release\n");
+ spin_lock_bh(&tgt->tgt_lock);
+@@ -618,6 +617,7 @@ int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req)
+ spin_unlock_bh(&tgt->tgt_lock);
+ kfree(cb_arg);
+ }
++rec_err:
+ return rc;
+ }
+
+
diff --git a/patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_srr b/patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_srr
new file mode 100644
index 0000000000..71c45f2584
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_srr
@@ -0,0 +1,40 @@
+From: Lin Yi <teroincn@163.com>
+Date: Tue, 25 Jun 2019 10:35:29 +0800
+Subject: scsi: bnx2fc: fix bnx2fc_cmd refcount imbalance in send_srr
+Git-commit: 7bfe5ae57c803dd529aaf6feb32c3b49ebff66bd
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+If cb_arg alloc failed, we can't release the struct orig_io_req refcount
+before we take its refcount. As Saurav said, move the srr_err label down
+to avoid unnecessary refcount release and nullptr free.
+
+Signed-off-by: Lin Yi <teroincn@163.com>
+Acked-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc_els.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c
+index 9a8e40bc694b..754f2e82d955 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_els.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_els.c
+@@ -654,7 +654,6 @@ int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl)
+ rc = bnx2fc_initiate_els(tgt, ELS_SRR, &srr, sizeof(srr),
+ bnx2fc_srr_compl, cb_arg,
+ r_a_tov);
+-srr_err:
+ if (rc) {
+ BNX2FC_IO_DBG(orig_io_req, "SRR failed - release\n");
+ spin_lock_bh(&tgt->tgt_lock);
+@@ -664,6 +663,7 @@ int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl)
+ } else
+ set_bit(BNX2FC_FLAG_SRR_SENT, &orig_io_req->req_flags);
+
++srr_err:
+ return rc;
+ }
+
+
diff --git a/patches.drivers/scsi-bnx2fc-limit-the-io-size-according-to-the-fw-capability b/patches.drivers/scsi-bnx2fc-limit-the-io-size-according-to-the-fw-capability
new file mode 100644
index 0000000000..e92b36449a
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-limit-the-io-size-according-to-the-fw-capability
@@ -0,0 +1,77 @@
+From: Saurav Kashyap <skashyap@marvell.com>
+Date: Mon, 24 Jun 2019 01:29:59 -0700
+Subject: scsi: bnx2fc: Limit the IO size according to the FW capability
+Git-commit: 3c97b569505f0d467a7fd544b05f1e122c08db67
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+ - Reduce the sg_tablesize to 255.
+
+ - Reduce the MAX BDs firmware can handle to 255.
+
+ - Return IO to ML if BD goes more then 255 after split.
+
+ - Correct the size of each BD split to 0xffff.
+
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc.h | 5 +++--
+ drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 3 ++-
+ drivers/scsi/bnx2fc/bnx2fc_io.c | 11 +++++++++++
+ 3 files changed, 16 insertions(+), 3 deletions(-)
+
+--- a/drivers/scsi/bnx2fc/bnx2fc.h
++++ b/drivers/scsi/bnx2fc/bnx2fc.h
+@@ -75,8 +75,9 @@
+ #define BNX2X_DOORBELL_PCI_BAR 2
+
+ #define BNX2FC_MAX_BD_LEN 0xffff
+-#define BNX2FC_BD_SPLIT_SZ 0x8000
+-#define BNX2FC_MAX_BDS_PER_CMD 256
++#define BNX2FC_BD_SPLIT_SZ 0xffff
++#define BNX2FC_MAX_BDS_PER_CMD 255
++#define BNX2FC_FW_MAX_BDS_PER_CMD 255
+
+ #define BNX2FC_SQ_WQES_MAX 256
+
+--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+@@ -2972,7 +2972,8 @@ static struct scsi_host_template bnx2fc_
+ .cmd_per_lun = 3,
+ .use_clustering = ENABLE_CLUSTERING,
+ .sg_tablesize = BNX2FC_MAX_BDS_PER_CMD,
+- .max_sectors = 1024,
++ .dma_boundary = 0x7fff,
++ .max_sectors = 0x3fbf,
+ .track_queue_depth = 1,
+ .slave_configure = bnx2fc_slave_configure,
+ .shost_attrs = bnx2fc_host_attrs,
+--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
+@@ -1660,6 +1660,7 @@ static int bnx2fc_map_sg(struct bnx2fc_c
+ u64 addr;
+ int i;
+
++ WARN_ON(scsi_sg_count(sc) > BNX2FC_MAX_BDS_PER_CMD);
+ /*
+ * Use dma_map_sg directly to ensure we're using the correct
+ * dev struct off of pcidev.
+@@ -1707,6 +1708,16 @@ static int bnx2fc_build_bd_list_from_sg(
+ }
+ io_req->bd_tbl->bd_valid = bd_count;
+
++ /*
++ * Return the command to ML if BD count exceeds the max number
++ * that can be handled by FW.
++ */
++ if (bd_count > BNX2FC_FW_MAX_BDS_PER_CMD) {
++ pr_err("bd_count = %d exceeded FW supported max BD(255), task_id = 0x%x\n",
++ bd_count, io_req->xid);
++ return -ENOMEM;
++ }
++
+ return 0;
+ }
+
diff --git a/patches.drivers/scsi-bnx2fc-only-put-reference-to-io_req-in-bnx2fc_abts_cleanup-if-cleanup-times-out b/patches.drivers/scsi-bnx2fc-only-put-reference-to-io_req-in-bnx2fc_abts_cleanup-if-cleanup-times-out
new file mode 100644
index 0000000000..606b0acc35
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-only-put-reference-to-io_req-in-bnx2fc_abts_cleanup-if-cleanup-times-out
@@ -0,0 +1,95 @@
+From: Chad Dupuis <cdupuis@marvell.com>
+Date: Mon, 24 Jun 2019 01:29:56 -0700
+Subject: scsi: bnx2fc: Only put reference to io_req in bnx2fc_abts_cleanup if
+ cleanup times out
+Git-commit: a92ac6ee7980f3c139910d0d0a079802363818cb
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+In certain tests where the SCSI error handler issues an abort that is
+already outstanding, we will cleanup the command so that the SCSI error
+handler can proceed. In some of these cases we were seeing a command
+mismatch:
+
+ kernel: scsi host2: bnx2fc: xid:0x42b eh_abort - refcnt = 2
+ kernel: bnx2fc: eh_abort: io_req (xid = 0x42b) already in abts processing
+ kernel: scsi host2: bnx2fc: xid:0x42b Entered bnx2fc_initiate_cleanup
+ kernel: scsi host2: bnx2fc: xid:0x42b CLEANUP io_req xid = 0x80b
+ kernel: scsi host2: bnx2fc: xid:0x80b cq_compl- cleanup resp rcvd
+ kernel: scsi host2: bnx2fc: xid:0x42b complete - rx_state = 9
+ kernel: scsi host2: bnx2fc: xid:0x42b Entered process_cleanup_compl refcnt = 2, cmd_type = 1
+ kernel: scsi host2: bnx2fc: xid:0x42b scsi_done. err_code = 0x7
+ kernel: scsi host2: bnx2fc: xid:0x42b sc=ffff8807f93dfb80, result=0x7, retries=0, allowed=5
+ kernel: ------------[ cut here ]------------
+ kernel: WARNING: at /root/rpmbuild/BUILD/netxtreme2-7.14.43/obj/default/bnx2fc-2.12.1/driver/bnx2fc_io.c:1347 bnx2fc_eh_abort+0x56f/0x680 [bnx2fc]()
+ kernel: xid=0x42b refcount=-1
+ kernel: Modules linked in:
+ kernel: nls_utf8 isofs sr_mod cdrom tcp_lp dm_round_robin xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT nf_reject_ipv4 tun bridge ebtable_filter ebtables fuse ip6table_filter ip6_tables iptable_filter bnx2fc(OE) cnic(OE) uio fcoe libfcoe 8021q libfc garp mrp scsi_transport_fc stp llc scsi_tgt vfat fat dm_service_time intel_powerclamp coretemp intel_rapl iosf_mbi kvm_intel kvm irqbypass crc32_pclmul ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd ses enclosure ipmi_ssif i2c_core hpilo hpwdt wmi sg ipmi_devintf pcspkr ipmi_si ipmi_msghandler shpchp acpi_power_meter dm_multipath nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs sd_mod crc_t10dif
+ kernel: crct10dif_generic bnx2x(OE) crct10dif_pclmul crct10dif_common crc32c_intel mdio ptp pps_core libcrc32c smartpqi scsi_transport_sas fjes uas usb_storage dm_mirror dm_region_hash dm_log dm_mod
+ kernel: CPU: 9 PID: 2012 Comm: scsi_eh_2 Tainted: G W OE ------------ 3.10.0-514.el7.x86_64 #1
+ kernel: Hardware name: HPE Synergy 480 Gen10/Synergy 480 Gen10 Compute Module, BIOS I42 03/21/2018
+ kernel: ffff8807f25a3d98 0000000015e7fa0c ffff8807f25a3d50 ffffffff81685eac
+ kernel: ffff8807f25a3d88 ffffffff81085820 ffff8807f8e39000 ffff880801ff7468
+ kernel: ffff880801ff7610 0000000000002002 ffff8807f8e39014 ffff8807f25a3df0
+ kernel: Call Trace:
+ kernel: [<ffffffff81685eac>] dump_stack+0x19/0x1b
+ kernel: [<ffffffff81085820>] warn_slowpath_common+0x70/0xb0
+ kernel: [<ffffffff810858bc>] warn_slowpath_fmt+0x5c/0x80
+ kernel: [<ffffffff8168d842>] ? _raw_spin_lock_bh+0x12/0x50
+ kernel: [<ffffffffa0549e6f>] bnx2fc_eh_abort+0x56f/0x680 [bnx2fc]
+ kernel: [<ffffffff814570af>] scsi_error_handler+0x59f/0x8b0
+ kernel: [<ffffffff81456b10>] ? scsi_eh_get_sense+0x250/0x250
+ kernel: [<ffffffff810b052f>] kthread+0xcf/0xe0
+ kernel: [<ffffffff810b0460>] ? kthread_create_on_node+0x140/0x140
+ kernel: [<ffffffff81696418>] ret_from_fork+0x58/0x90
+ kernel: [<ffffffff810b0460>] ? kthread_create_on_node+0x140/0x140
+ kernel: ---[ end trace 42deb88f2032b111 ]---
+
+The reason that there was a mismatch is that the SCSI command is actual
+returned from the cleanup handler. In previous testing, the type of
+cleanup notification we'd get from the CQE did not trigger the code that
+returned the SCSI command. To overcome the previous behavior we would put
+a reference in bnx2fc_abts_cleanup() to account for the SCSI command.
+However, in cases where the SCSI command is actually off, we end up with an
+extra put.
+
+The fix for this is to only take the extra put in bnx2fc_abts_cleanup if
+the completion for the cleanup times out.
+
+Signed-off-by: Chad Dupuis <cdupuis@marvell.com>
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc_io.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
+index 8def63c0755f..578ff53a4e8d 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
+@@ -1097,16 +1097,16 @@ static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req)
+ time_left = wait_for_completion_timeout(&io_req->tm_done,
+ BNX2FC_FW_TIMEOUT);
+ io_req->wait_for_comp = 0;
+- if (!time_left)
++ if (!time_left) {
+ BNX2FC_IO_DBG(io_req, "%s(): Wait for cleanup timed out.\n",
+ __func__);
+
+- /*
+- * Release reference held by SCSI command the cleanup completion
+- * hits the BNX2FC_CLEANUP case in bnx2fc_process_cq_compl() and
+- * thus the SCSI command is not returnedi by bnx2fc_scsi_done().
+- */
+- kref_put(&io_req->refcount, bnx2fc_cmd_release);
++ /*
++ * Put the extra reference to the SCSI command since it would
++ * not have been returned in this case.
++ */
++ kref_put(&io_req->refcount, bnx2fc_cmd_release);
++ }
+
+ spin_lock_bh(&tgt->tgt_lock);
+ return SUCCESS;
+
diff --git a/patches.drivers/scsi-bnx2fc-redo-setting-source-fcoe-mac b/patches.drivers/scsi-bnx2fc-redo-setting-source-fcoe-mac
new file mode 100644
index 0000000000..4d45077515
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-redo-setting-source-fcoe-mac
@@ -0,0 +1,109 @@
+From: Chad Dupuis <cdupuis@marvell.com>
+Date: Mon, 24 Jun 2019 01:29:55 -0700
+Subject: scsi: bnx2fc: Redo setting source FCoE MAC
+Git-commit: 4adb451c8d1656e28a9ec472ccbdc4463205424a
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+For bnx2fc, the source FCoE MAC is stored in the fcoe_port struct in the
+data_src_mac field. Currently this is set in fcoe_ctlr_recv_flogi which
+ends up setting it by simply using fc_fcoe_set_mac() which only uses the
+default FCF-MAC. We still want to store the source FCoE MAC in
+port->data_src_mac but we want to snoop the FLOGI response payload so as to
+set it in the following method:
+
+1. If a granted_mac is found, use that.
+
+2. If not granted_mac is there but there is a FCF-MAP from the FCF then
+ create the MAC from the FCF-MAP and the destination ID from the frame.
+
+3. If there is no FCF-MAP the use the spec. default FCF-MAP and the
+ destination ID from the frame.
+
+Signed-off-by: Chad Dupuis <cdupuis@marvell.com>
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc_els.c | 56 ++++++++++++++++++++++++++++------------
+ 1 file changed, 40 insertions(+), 16 deletions(-)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c
+index 76e65a32f38c..8de5b70f6727 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_els.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_els.c
+@@ -854,33 +854,57 @@ void bnx2fc_process_els_compl(struct bnx2fc_cmd *els_req,
+ kref_put(&els_req->refcount, bnx2fc_cmd_release);
+ }
+
++#define BNX2FC_FCOE_MAC_METHOD_GRANGED_MAC 1
++#define BNX2FC_FCOE_MAC_METHOD_FCF_MAP 2
++#define BNX2FC_FCOE_MAC_METHOD_FCOE_SET_MAC 3
+ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
+ void *arg)
+ {
+ struct fcoe_ctlr *fip = arg;
+ struct fc_exch *exch = fc_seq_exch(seq);
+ struct fc_lport *lport = exch->lp;
+- u8 *mac;
+- u8 op;
++
++ struct fc_frame_header *fh;
++ u8 *granted_mac;
++ u8 fcoe_mac[6];
++ u8 fc_map[3];
++ int method;
+
+ if (IS_ERR(fp))
+ goto done;
+
+- mac = fr_cb(fp)->granted_mac;
+- if (is_zero_ether_addr(mac)) {
+- op = fc_frame_payload_op(fp);
+- if (lport->vport) {
+- if (op == ELS_LS_RJT) {
+- printk(KERN_ERR PFX "bnx2fc_flogi_resp is LS_RJT\n");
+- fc_vport_terminate(lport->vport);
+- fc_frame_free(fp);
+- return;
+- }
+- }
+- fcoe_ctlr_recv_flogi(fip, lport, fp);
++ fh = fc_frame_header_get(fp);
++ granted_mac = fr_cb(fp)->granted_mac;
++
++ /*
++ * We set the source MAC for FCoE traffic based on the Granted MAC
++ * address from the switch.
++ *
++ * If granted_mac is non-zero, we use that.
++ * If the granted_mac is zeroed out, create the FCoE MAC based on
++ * the sel_fcf->fc_map and the d_id fo the FLOGI frame.
++ * If sel_fcf->fc_map is 0, then we use the default FCF-MAC plus the
++ * d_id of the FLOGI frame.
++ */
++ if (!is_zero_ether_addr(granted_mac)) {
++ ether_addr_copy(fcoe_mac, granted_mac);
++ method = BNX2FC_FCOE_MAC_METHOD_GRANGED_MAC;
++ } else if (fip->sel_fcf && fip->sel_fcf->fc_map != 0) {
++ hton24(fc_map, fip->sel_fcf->fc_map);
++ fcoe_mac[0] = fc_map[0];
++ fcoe_mac[1] = fc_map[1];
++ fcoe_mac[2] = fc_map[2];
++ fcoe_mac[3] = fh->fh_d_id[0];
++ fcoe_mac[4] = fh->fh_d_id[1];
++ fcoe_mac[5] = fh->fh_d_id[2];
++ method = BNX2FC_FCOE_MAC_METHOD_FCF_MAP;
++ } else {
++ fc_fcoe_set_mac(fcoe_mac, fh->fh_d_id);
++ method = BNX2FC_FCOE_MAC_METHOD_FCOE_SET_MAC;
+ }
+- if (!is_zero_ether_addr(mac))
+- fip->update_mac(lport, mac);
++
++ BNX2FC_HBA_DBG(lport, "fcoe_mac=%pM method=%d\n", fcoe_mac, method);
++ fip->update_mac(lport, fcoe_mac);
+ done:
+ fc_lport_flogi_resp(seq, fp, lport);
+ }
+
diff --git a/patches.drivers/scsi-bnx2fc-separate-out-completion-flags-and-variables-for-abort-and-cleanup b/patches.drivers/scsi-bnx2fc-separate-out-completion-flags-and-variables-for-abort-and-cleanup
new file mode 100644
index 0000000000..696971bece
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-separate-out-completion-flags-and-variables-for-abort-and-cleanup
@@ -0,0 +1,250 @@
+From: Saurav Kashyap <skashyap@marvell.com>
+Date: Mon, 24 Jun 2019 01:29:57 -0700
+Subject: scsi: bnx2fc: Separate out completion flags and variables for abort
+ and cleanup
+Git-commit: 0e0fcef97201712894959568c24c08fd7542a2ec
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+Separate out abort and cleanup flag and completion, to have better
+understaning of what is getting processed.
+
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc.h | 6 ++--
+ drivers/scsi/bnx2fc/bnx2fc_io.c | 59 ++++++++++++++++++++++------------------
+ drivers/scsi/bnx2fc/bnx2fc_tgt.c | 10 +++----
+ 3 files changed, 41 insertions(+), 34 deletions(-)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
+index 901a31632493..5d7e21a818c5 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc.h
++++ b/drivers/scsi/bnx2fc/bnx2fc.h
+@@ -433,8 +433,10 @@ struct bnx2fc_cmd {
+ void (*cb_func)(struct bnx2fc_els_cb_arg *cb_arg);
+ struct bnx2fc_els_cb_arg *cb_arg;
+ struct delayed_work timeout_work; /* timer for ULP timeouts */
+- struct completion tm_done;
+- int wait_for_comp;
++ struct completion abts_done;
++ struct completion cleanup_done;
++ int wait_for_abts_comp;
++ int wait_for_cleanup_comp;
+ u16 xid;
+ struct fcoe_err_report_entry err_entry;
+ struct fcoe_task_ctx_entry *task;
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
+index 578ff53a4e8d..88c392ba80a9 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
+@@ -70,7 +70,7 @@ static void bnx2fc_cmd_timeout(struct work_struct *work)
+ &io_req->req_flags)) {
+ /* Handle eh_abort timeout */
+ BNX2FC_IO_DBG(io_req, "eh_abort timed out\n");
+- complete(&io_req->tm_done);
++ complete(&io_req->abts_done);
+ } else if (test_bit(BNX2FC_FLAG_ISSUE_ABTS,
+ &io_req->req_flags)) {
+ /* Handle internally generated ABTS timeout */
+@@ -775,31 +775,32 @@ static int bnx2fc_initiate_tmf(struct scsi_cmnd *sc_cmd, u8 tm_flags)
+ io_req->on_tmf_queue = 1;
+ list_add_tail(&io_req->link, &tgt->active_tm_queue);
+
+- init_completion(&io_req->tm_done);
+- io_req->wait_for_comp = 1;
++ init_completion(&io_req->abts_done);
++ io_req->wait_for_abts_comp = 1;
+
+ /* Ring doorbell */
+ bnx2fc_ring_doorbell(tgt);
+ spin_unlock_bh(&tgt->tgt_lock);
+
+- rc = wait_for_completion_timeout(&io_req->tm_done,
++ rc = wait_for_completion_timeout(&io_req->abts_done,
+ interface->tm_timeout * HZ);
+ spin_lock_bh(&tgt->tgt_lock);
+
+- io_req->wait_for_comp = 0;
++ io_req->wait_for_abts_comp = 0;
+ if (!(test_bit(BNX2FC_FLAG_TM_COMPL, &io_req->req_flags))) {
+ set_bit(BNX2FC_FLAG_TM_TIMEOUT, &io_req->req_flags);
+ if (io_req->on_tmf_queue) {
+ list_del_init(&io_req->link);
+ io_req->on_tmf_queue = 0;
+ }
+- io_req->wait_for_comp = 1;
++ io_req->wait_for_cleanup_comp = 1;
++ init_completion(&io_req->cleanup_done);
+ bnx2fc_initiate_cleanup(io_req);
+ spin_unlock_bh(&tgt->tgt_lock);
+- rc = wait_for_completion_timeout(&io_req->tm_done,
++ rc = wait_for_completion_timeout(&io_req->cleanup_done,
+ BNX2FC_FW_TIMEOUT);
+ spin_lock_bh(&tgt->tgt_lock);
+- io_req->wait_for_comp = 0;
++ io_req->wait_for_cleanup_comp = 0;
+ if (!rc)
+ kref_put(&io_req->refcount, bnx2fc_cmd_release);
+ }
+@@ -1085,7 +1086,8 @@ static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req)
+ struct bnx2fc_rport *tgt = io_req->tgt;
+ unsigned int time_left;
+
+- io_req->wait_for_comp = 1;
++ init_completion(&io_req->cleanup_done);
++ io_req->wait_for_cleanup_comp = 1;
+ bnx2fc_initiate_cleanup(io_req);
+
+ spin_unlock_bh(&tgt->tgt_lock);
+@@ -1094,9 +1096,8 @@ static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req)
+ * Can't wait forever on cleanup response lest we let the SCSI error
+ * handler wait forever
+ */
+- time_left = wait_for_completion_timeout(&io_req->tm_done,
++ time_left = wait_for_completion_timeout(&io_req->cleanup_done,
+ BNX2FC_FW_TIMEOUT);
+- io_req->wait_for_comp = 0;
+ if (!time_left) {
+ BNX2FC_IO_DBG(io_req, "%s(): Wait for cleanup timed out.\n",
+ __func__);
+@@ -1109,6 +1110,7 @@ static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req)
+ }
+
+ spin_lock_bh(&tgt->tgt_lock);
++ io_req->wait_for_cleanup_comp = 0;
+ return SUCCESS;
+ }
+
+@@ -1197,7 +1199,8 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
+ /* Move IO req to retire queue */
+ list_add_tail(&io_req->link, &tgt->io_retire_queue);
+
+- init_completion(&io_req->tm_done);
++ init_completion(&io_req->abts_done);
++ init_completion(&io_req->cleanup_done);
+
+ if (test_and_set_bit(BNX2FC_FLAG_ISSUE_ABTS, &io_req->req_flags)) {
+ printk(KERN_ERR PFX "eh_abort: io_req (xid = 0x%x) "
+@@ -1225,26 +1228,28 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
+ kref_put(&io_req->refcount,
+ bnx2fc_cmd_release); /* drop timer hold */
+ set_bit(BNX2FC_FLAG_EH_ABORT, &io_req->req_flags);
+- io_req->wait_for_comp = 1;
++ io_req->wait_for_abts_comp = 1;
+ rc = bnx2fc_initiate_abts(io_req);
+ if (rc == FAILED) {
++ io_req->wait_for_cleanup_comp = 1;
+ bnx2fc_initiate_cleanup(io_req);
+ spin_unlock_bh(&tgt->tgt_lock);
+- wait_for_completion(&io_req->tm_done);
++ wait_for_completion(&io_req->cleanup_done);
+ spin_lock_bh(&tgt->tgt_lock);
+- io_req->wait_for_comp = 0;
++ io_req->wait_for_cleanup_comp = 0;
+ goto done;
+ }
+ spin_unlock_bh(&tgt->tgt_lock);
+
+ /* Wait 2 * RA_TOV + 1 to be sure timeout function hasn't fired */
+- time_left = wait_for_completion_timeout(&io_req->tm_done,
+- (2 * rp->r_a_tov + 1) * HZ);
++ time_left = wait_for_completion_timeout(&io_req->abts_done,
++ (2 * rp->r_a_tov + 1) * HZ);
+ if (time_left)
+- BNX2FC_IO_DBG(io_req, "Timed out in eh_abort waiting for tm_done");
++ BNX2FC_IO_DBG(io_req,
++ "Timed out in eh_abort waiting for abts_done");
+
+ spin_lock_bh(&tgt->tgt_lock);
+- io_req->wait_for_comp = 0;
++ io_req->wait_for_abts_comp = 0;
+ if (test_bit(BNX2FC_FLAG_IO_COMPL, &io_req->req_flags)) {
+ BNX2FC_IO_DBG(io_req, "IO completed in a different context\n");
+ rc = SUCCESS;
+@@ -1321,8 +1326,8 @@ void bnx2fc_process_cleanup_compl(struct bnx2fc_cmd *io_req,
+ kref_read(&io_req->refcount), io_req->cmd_type);
+ bnx2fc_scsi_done(io_req, DID_ERROR);
+ kref_put(&io_req->refcount, bnx2fc_cmd_release);
+- if (io_req->wait_for_comp)
+- complete(&io_req->tm_done);
++ if (io_req->wait_for_cleanup_comp)
++ complete(&io_req->cleanup_done);
+ }
+
+ void bnx2fc_process_abts_compl(struct bnx2fc_cmd *io_req,
+@@ -1390,10 +1395,10 @@ void bnx2fc_process_abts_compl(struct bnx2fc_cmd *io_req,
+ bnx2fc_cmd_timer_set(io_req, r_a_tov);
+
+ io_compl:
+- if (io_req->wait_for_comp) {
++ if (io_req->wait_for_abts_comp) {
+ if (test_and_clear_bit(BNX2FC_FLAG_EH_ABORT,
+ &io_req->req_flags))
+- complete(&io_req->tm_done);
++ complete(&io_req->abts_done);
+ } else {
+ /*
+ * We end up here when ABTS is issued as
+@@ -1577,9 +1582,9 @@ void bnx2fc_process_tm_compl(struct bnx2fc_cmd *io_req,
+ sc_cmd->scsi_done(sc_cmd);
+
+ kref_put(&io_req->refcount, bnx2fc_cmd_release);
+- if (io_req->wait_for_comp) {
++ if (io_req->wait_for_abts_comp) {
+ BNX2FC_IO_DBG(io_req, "tm_compl - wake up the waiter\n");
+- complete(&io_req->tm_done);
++ complete(&io_req->abts_done);
+ }
+ }
+
+@@ -1926,10 +1931,10 @@ void bnx2fc_process_scsi_cmd_compl(struct bnx2fc_cmd *io_req,
+ * between command abort and (late) completion.
+ */
+ BNX2FC_IO_DBG(io_req, "xid not on active_cmd_queue\n");
+- if (io_req->wait_for_comp)
++ if (io_req->wait_for_abts_comp)
+ if (test_and_clear_bit(BNX2FC_FLAG_EH_ABORT,
+ &io_req->req_flags))
+- complete(&io_req->tm_done);
++ complete(&io_req->abts_done);
+ }
+
+ bnx2fc_unmap_sg_list(io_req);
+diff --git a/drivers/scsi/bnx2fc/bnx2fc_tgt.c b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
+index d735e87e416a..50384b4a817c 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc_tgt.c
++++ b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
+@@ -187,7 +187,7 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
+ /* Handle eh_abort timeout */
+ BNX2FC_IO_DBG(io_req, "eh_abort for IO "
+ "cleaned up\n");
+- complete(&io_req->tm_done);
++ complete(&io_req->abts_done);
+ }
+ kref_put(&io_req->refcount,
+ bnx2fc_cmd_release); /* drop timer hold */
+@@ -210,8 +210,8 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
+ list_del_init(&io_req->link);
+ io_req->on_tmf_queue = 0;
+ BNX2FC_IO_DBG(io_req, "tm_queue cleanup\n");
+- if (io_req->wait_for_comp)
+- complete(&io_req->tm_done);
++ if (io_req->wait_for_abts_comp)
++ complete(&io_req->abts_done);
+ }
+
+ list_for_each_entry_safe(io_req, tmp, &tgt->els_queue, link) {
+@@ -251,8 +251,8 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
+ /* Handle eh_abort timeout */
+ BNX2FC_IO_DBG(io_req, "eh_abort for IO "
+ "in retire_q\n");
+- if (io_req->wait_for_comp)
+- complete(&io_req->tm_done);
++ if (io_req->wait_for_abts_comp)
++ complete(&io_req->abts_done);
+ }
+ kref_put(&io_req->refcount, bnx2fc_cmd_release);
+ }
+
diff --git a/patches.drivers/scsi-bnx2fc-update-the-driver-version-to-2-12-10 b/patches.drivers/scsi-bnx2fc-update-the-driver-version-to-2-12-10
new file mode 100644
index 0000000000..6e8ddde14d
--- /dev/null
+++ b/patches.drivers/scsi-bnx2fc-update-the-driver-version-to-2-12-10
@@ -0,0 +1,30 @@
+From: Saurav Kashyap <skashyap@marvell.com>
+Date: Mon, 24 Jun 2019 01:30:00 -0700
+Subject: scsi: bnx2fc: Update the driver version to 2.12.10
+Git-commit: 10b3ef2270189fee35ca21b70463481353f1e160
+Patch-mainline: v5.3-rc1
+References: bsc#1144582
+
+Update the driver version to 2.12.10.
+
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bnx2fc/bnx2fc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
+index 170abe90007a..3b84db8d13a9 100644
+--- a/drivers/scsi/bnx2fc/bnx2fc.h
++++ b/drivers/scsi/bnx2fc/bnx2fc.h
+@@ -66,7 +66,7 @@
+ #include "bnx2fc_constants.h"
+
+ #define BNX2FC_NAME "bnx2fc"
+-#define BNX2FC_VERSION "2.11.8"
++#define BNX2FC_VERSION "2.12.10"
+
+ #define PFX "bnx2fc: "
+
+
diff --git a/patches.drivers/sdhci-fujitsu-add-support-for-setting-the-CMD_DAT_DE.patch b/patches.drivers/sdhci-fujitsu-add-support-for-setting-the-CMD_DAT_DE.patch
new file mode 100644
index 0000000000..ef0e47d755
--- /dev/null
+++ b/patches.drivers/sdhci-fujitsu-add-support-for-setting-the-CMD_DAT_DE.patch
@@ -0,0 +1,74 @@
+From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Date: Mon, 6 Nov 2017 15:29:23 +0000
+Subject: sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute
+
+Git-commit: 06641e8deae68ee2769c734158bc9170be257bb9
+Patch-mainline: v4.15-rc1
+References: bsc#1145256
+
+The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
+requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
+F_SDH30_ESD_CONTROL control register. So set this bit if the
+DT node has the 'fujitsu,cmd-dat-delay-select' property.
+
+Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Acked-by: Adrian Hunter <adrian.hunter@intel.com>
+Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
+Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@suse.com>
+---
+ drivers/mmc/host/sdhci_f_sdh30.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
+index 111b66f5439b..04ca0d33a521 100644
+--- a/drivers/mmc/host/sdhci_f_sdh30.c
++++ b/drivers/mmc/host/sdhci_f_sdh30.c
+@@ -13,6 +13,7 @@
+ #include <linux/err.h>
+ #include <linux/delay.h>
+ #include <linux/module.h>
++#include <linux/property.h>
+ #include <linux/clk.h>
+
+ #include "sdhci-pltfm.h"
+@@ -47,6 +48,7 @@ struct f_sdhost_priv {
+ struct clk *clk;
+ u32 vendor_hs200;
+ struct device *dev;
++ bool enable_cmd_dat_delay;
+ };
+
+ static void sdhci_f_sdh30_soft_voltage_switch(struct sdhci_host *host)
+@@ -84,10 +86,19 @@ static unsigned int sdhci_f_sdh30_get_min_clock(struct sdhci_host *host)
+
+ static void sdhci_f_sdh30_reset(struct sdhci_host *host, u8 mask)
+ {
++ struct f_sdhost_priv *priv = sdhci_priv(host);
++ u32 ctl;
++
+ if (sdhci_readw(host, SDHCI_CLOCK_CONTROL) == 0)
+ sdhci_writew(host, 0xBC01, SDHCI_CLOCK_CONTROL);
+
+ sdhci_reset(host, mask);
++
++ if (priv->enable_cmd_dat_delay) {
++ ctl = sdhci_readl(host, F_SDH30_ESD_CONTROL);
++ ctl |= F_SDH30_CMD_DAT_DELAY;
++ sdhci_writel(host, ctl, F_SDH30_ESD_CONTROL);
++ }
+ }
+
+ static const struct sdhci_ops sdhci_f_sdh30_ops = {
+@@ -126,6 +137,9 @@ static int sdhci_f_sdh30_probe(struct platform_device *pdev)
+ host->quirks2 = SDHCI_QUIRK2_SUPPORT_SINGLE |
+ SDHCI_QUIRK2_TUNING_WORK_AROUND;
+
++ priv->enable_cmd_dat_delay = device_property_read_bool(dev,
++ "fujitsu,cmd-dat-delay-select");
++
+ ret = mmc_of_parse(host->mmc);
+ if (ret)
+ goto err;
+--
+2.11.0
+
diff --git a/patches.drivers/spi-mem-fix-kernel-doc-for-spi_mem_dirmap_-read-writ.patch b/patches.drivers/spi-mem-fix-kernel-doc-for-spi_mem_dirmap_-read-writ.patch
index f0e5005caf..b85d36145f 100644
--- a/patches.drivers/spi-mem-fix-kernel-doc-for-spi_mem_dirmap_-read-writ.patch
+++ b/patches.drivers/spi-mem-fix-kernel-doc-for-spi_mem_dirmap_-read-writ.patch
@@ -20,8 +20,8 @@ Acked-by: Takashi Iwai <tiwai@suse.de>
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
-@@ -552,7 +552,7 @@ void spi_mem_dirmap_destroy(struct spi_m
- EXPORT_SYMBOL_GPL(spi_mem_dirmap_destroy);
+@@ -622,7 +622,7 @@ void devm_spi_mem_dirmap_destroy(struct
+ EXPORT_SYMBOL_GPL(devm_spi_mem_dirmap_destroy);
/**
- * spi_mem_dirmap_dirmap_read() - Read data through a direct mapping
@@ -29,7 +29,7 @@ Acked-by: Takashi Iwai <tiwai@suse.de>
* @desc: direct mapping descriptor
* @offs: offset to start reading from. Note that this is not an absolute
* offset, but the offset within the direct mapping which already has
-@@ -598,7 +598,7 @@ ssize_t spi_mem_dirmap_read(struct spi_m
+@@ -668,7 +668,7 @@ ssize_t spi_mem_dirmap_read(struct spi_m
EXPORT_SYMBOL_GPL(spi_mem_dirmap_read);
/**
diff --git a/patches.drivers/tun-mark-small-packets-as-owned-by-the-tap-sock.patch b/patches.drivers/tun-mark-small-packets-as-owned-by-the-tap-sock.patch
new file mode 100644
index 0000000000..656e570980
--- /dev/null
+++ b/patches.drivers/tun-mark-small-packets-as-owned-by-the-tap-sock.patch
@@ -0,0 +1,70 @@
+From: Alexis Bauvin <abauvin@scaleway.com>
+Date: Tue, 23 Jul 2019 16:23:01 +0200
+Subject: tun: mark small packets as owned by the tap sock
+Patch-mainline: v5.3-rc4
+Git-commit: 4b663366246be1d1d4b1b8b01245b2e88ad9e706
+References: bsc#1109837
+
+- v1 -> v2: Move skb_set_owner_w to __tun_build_skb to reduce patch size
+
+Small packets going out of a tap device go through an optimized code
+path that uses build_skb() rather than sock_alloc_send_pskb(). The
+latter calls skb_set_owner_w(), but the small packet code path does not.
+
+The net effect is that small packets are not owned by the userland
+application's socket (e.g. QEMU), while large packets are.
+This can be seen with a TCP session, where packets are not owned when
+the window size is small enough (around PAGE_SIZE), while they are once
+the window grows (note that this requires the host to support virtio
+tso for the guest to offload segmentation).
+All this leads to inconsistent behaviour in the kernel, especially on
+netfilter modules that uses sk->socket (e.g. xt_owner).
+
+Fixes: 66ccbc9c87c2 ("tap: use build_skb() for small packet")
+Signed-off-by: Alexis Bauvin <abauvin@scaleway.com>
+Acked-by: Jason Wang <jasowang@redhat.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+---
+ drivers/net/tun.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/tun.c
++++ b/drivers/net/tun.c
+@@ -1581,7 +1581,8 @@ static bool tun_can_build_skb(struct tun
+ return true;
+ }
+
+-static struct sk_buff *__tun_build_skb(struct page_frag *alloc_frag, char *buf,
++static struct sk_buff *__tun_build_skb(struct tun_file *tfile,
++ struct page_frag *alloc_frag, char *buf,
+ int buflen, int len, int pad)
+ {
+ struct sk_buff *skb = build_skb(buf, buflen);
+@@ -1591,6 +1592,7 @@ static struct sk_buff *__tun_build_skb(s
+
+ skb_reserve(skb, pad);
+ skb_put(skb, len);
++ skb_set_owner_w(skb, tfile->socket.sk);
+
+ get_page(alloc_frag->page);
+ alloc_frag->offset += buflen;
+@@ -1668,7 +1670,8 @@ static struct sk_buff *tun_build_skb(str
+ */
+ if (hdr->gso_type || !xdp_prog) {
+ *skb_xdp = 1;
+- return __tun_build_skb(alloc_frag, buf, buflen, len, pad);
++ return __tun_build_skb(tfile, alloc_frag, buf, buflen, len,
++ pad);
+ }
+
+ *skb_xdp = 0;
+@@ -1705,7 +1708,7 @@ static struct sk_buff *tun_build_skb(str
+ rcu_read_unlock();
+ local_bh_enable();
+
+- return __tun_build_skb(alloc_frag, buf, buflen, len, pad);
++ return __tun_build_skb(tfile, alloc_frag, buf, buflen, len, pad);
+
+ err_xdp:
+ put_page(alloc_frag->page);
diff --git a/patches.drivers/usb-typec-tcpm-Ignore-unsupported-unknown-alternate-.patch b/patches.drivers/usb-typec-tcpm-Ignore-unsupported-unknown-alternate-.patch
new file mode 100644
index 0000000000..433bffbd40
--- /dev/null
+++ b/patches.drivers/usb-typec-tcpm-Ignore-unsupported-unknown-alternate-.patch
@@ -0,0 +1,127 @@
+From 88d02c9ba2e83fc22d37ccb1f11c62ea6fc9ae50 Mon Sep 17 00:00:00 2001
+From: Guenter Roeck <linux@roeck-us.net>
+Date: Fri, 2 Aug 2019 09:03:42 -0700
+Subject: [PATCH] usb: typec: tcpm: Ignore unsupported/unknown alternate mode requests
+Git-commit: 88d02c9ba2e83fc22d37ccb1f11c62ea6fc9ae50
+Patch-mainline: v5.3-rc4
+References: bsc#1111666
+
+TCPM may receive PD messages associated with unknown or unsupported
+alternate modes. If that happens, calls to typec_match_altmode()
+will return NULL. The tcpm code does not currently take this into
+account. This results in crashes.
+
+Unable to handle kernel NULL pointer dereference at virtual address 000001f0
+pgd = 41dad9a1
+[000001f0] *pgd=00000000
+Internal error: Oops: 5 [#1] THUMB2
+Modules linked in: tcpci tcpm
+Cpu: 0 PID: 2338 Comm: kworker/u2:0 Not tainted 5.1.18-sama5-armv7-r2 #6
+Hardware name: Atmel SAMA5
+Workqueue: 2-0050 tcpm_pd_rx_handler [tcpm]
+PC is at typec_altmode_attention+0x0/0x14
+LR is at tcpm_pd_rx_handler+0xa3b/0xda0 [tcpm]
+...
+[<c03fbee8>] (typec_altmode_attention) from [<bf8030fb>]
+ (tcpm_pd_rx_handler+0xa3b/0xda0 [tcpm])
+[<bf8030fb>] (tcpm_pd_rx_handler [tcpm]) from [<c012082b>]
+ (process_one_work+0x123/0x2a8)
+[<c012082b>] (process_one_work) from [<c0120a6d>]
+ (worker_thread+0xbd/0x3b0)
+[<c0120a6d>] (worker_thread) from [<c012431f>] (kthread+0xcf/0xf4)
+[<c012431f>] (kthread) from [<c01010f9>] (ret_from_fork+0x11/0x38)
+
+Ignore PD messages if the associated alternate mode is not supported.
+
+Fixes: e9576fe8e605c ("usb: typec: tcpm: Support for Alternate Modes")
+Cc: stable <stable@vger.kernel.org>
+Reported-by: Douglas Gilbert <dgilbert@interlog.com>
+Cc: Douglas Gilbert <dgilbert@interlog.com>
+Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
+Tested-by: Douglas Gilbert <dgilbert@interlog.com>
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/1564761822-13984-1-git-send-email-linux@roeck-us.net
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/usb/typec/tcpm/tcpm.c | 38 ++++++++++++++++++++++++--------------
+ 1 file changed, 24 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
+index ab6456622120..15abe1d9958f 100644
+--- a/drivers/usb/typec/tcpm/tcpm.c
++++ b/drivers/usb/typec/tcpm/tcpm.c
+@@ -1109,7 +1109,8 @@ static int tcpm_pd_svdm(struct tcpm_port *port, const __le32 *payload, int cnt,
+ break;
+ case CMD_ATTENTION:
+ /* Attention command does not have response */
+- typec_altmode_attention(adev, p[1]);
++ if (adev)
++ typec_altmode_attention(adev, p[1]);
+ return 0;
+ default:
+ break;
+@@ -1161,20 +1162,26 @@ static int tcpm_pd_svdm(struct tcpm_port *port, const __le32 *payload, int cnt,
+ }
+ break;
+ case CMD_ENTER_MODE:
+- typec_altmode_update_active(pdev, true);
+-
+- if (typec_altmode_vdm(adev, p[0], &p[1], cnt)) {
+- response[0] = VDO(adev->svid, 1, CMD_EXIT_MODE);
+- response[0] |= VDO_OPOS(adev->mode);
+- return 1;
++ if (adev && pdev) {
++ typec_altmode_update_active(pdev, true);
++
++ if (typec_altmode_vdm(adev, p[0], &p[1], cnt)) {
++ response[0] = VDO(adev->svid, 1,
++ CMD_EXIT_MODE);
++ response[0] |= VDO_OPOS(adev->mode);
++ return 1;
++ }
+ }
+ return 0;
+ case CMD_EXIT_MODE:
+- typec_altmode_update_active(pdev, false);
++ if (adev && pdev) {
++ typec_altmode_update_active(pdev, false);
+
+- /* Back to USB Operation */
+- WARN_ON(typec_altmode_notify(adev, TYPEC_STATE_USB,
+- NULL));
++ /* Back to USB Operation */
++ WARN_ON(typec_altmode_notify(adev,
++ TYPEC_STATE_USB,
++ NULL));
++ }
+ break;
+ default:
+ break;
+@@ -1184,8 +1191,10 @@ static int tcpm_pd_svdm(struct tcpm_port *port, const __le32 *payload, int cnt,
+ switch (cmd) {
+ case CMD_ENTER_MODE:
+ /* Back to USB Operation */
+- WARN_ON(typec_altmode_notify(adev, TYPEC_STATE_USB,
+- NULL));
++ if (adev)
++ WARN_ON(typec_altmode_notify(adev,
++ TYPEC_STATE_USB,
++ NULL));
+ break;
+ default:
+ break;
+@@ -1196,7 +1205,8 @@ static int tcpm_pd_svdm(struct tcpm_port *port, const __le32 *payload, int cnt,
+ }
+
+ /* Informing the alternate mode drivers about everything */
+- typec_altmode_vdm(adev, p[0], &p[1], cnt);
++ if (adev)
++ typec_altmode_vdm(adev, p[0], &p[1], cnt);
+
+ return rlen;
+ }
+--
+2.16.4
+
diff --git a/patches.drivers/usb-typec-tcpm-free-log-buf-memory-when-remove-debug.patch b/patches.drivers/usb-typec-tcpm-free-log-buf-memory-when-remove-debug.patch
new file mode 100644
index 0000000000..bd6c273717
--- /dev/null
+++ b/patches.drivers/usb-typec-tcpm-free-log-buf-memory-when-remove-debug.patch
@@ -0,0 +1,45 @@
+From fd5da3e2cc61b4a7c877172fdc9348c82cf6ccfc Mon Sep 17 00:00:00 2001
+From: Li Jun <jun.li@nxp.com>
+Date: Wed, 17 Jul 2019 16:06:45 +0800
+Subject: [PATCH] usb: typec: tcpm: free log buf memory when remove debug file
+Git-commit: fd5da3e2cc61b4a7c877172fdc9348c82cf6ccfc
+Patch-mainline: v5.3-rc4
+References: bsc#1111666
+
+The logbuffer memory should be freed when remove debug file.
+
+Cc: stable@vger.kernel.org # v4.15+
+Fixes: 4b4e02c83167 ("typec: tcpm: Move out of staging")
+Signed-off-by: Li Jun <jun.li@nxp.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20190717080646.30421-1-jun.li@nxp.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/usb/typec/tcpm/tcpm.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
+index 77f71f602f73..7b6497c1031e 100644
+--- a/drivers/usb/typec/tcpm/tcpm.c
++++ b/drivers/usb/typec/tcpm/tcpm.c
+@@ -587,6 +587,15 @@ static void tcpm_debugfs_init(struct tcpm_port *port)
+
+ static void tcpm_debugfs_exit(struct tcpm_port *port)
+ {
++ int i;
++
++ mutex_lock(&port->logbuffer_lock);
++ for (i = 0; i < LOG_BUFFER_ENTRIES; i++) {
++ kfree(port->logbuffer[i]);
++ port->logbuffer[i] = NULL;
++ }
++ mutex_unlock(&port->logbuffer_lock);
++
+ debugfs_remove(port->dentry);
+ }
+
+--
+2.16.4
+
diff --git a/patches.drivers/usb-typec-tcpm-remove-tcpm-dir-if-no-children.patch b/patches.drivers/usb-typec-tcpm-remove-tcpm-dir-if-no-children.patch
new file mode 100644
index 0000000000..e669f4b8e1
--- /dev/null
+++ b/patches.drivers/usb-typec-tcpm-remove-tcpm-dir-if-no-children.patch
@@ -0,0 +1,44 @@
+From 12ca7297b8855c0af1848503d37196159b24e6b9 Mon Sep 17 00:00:00 2001
+From: Li Jun <jun.li@nxp.com>
+Date: Wed, 17 Jul 2019 16:06:46 +0800
+Subject: [PATCH] usb: typec: tcpm: remove tcpm dir if no children
+Git-commit: 12ca7297b8855c0af1848503d37196159b24e6b9
+Patch-mainline: v5.3-rc4
+References: bsc#1111666
+
+If config tcpm as module, module unload will not remove tcpm dir,
+then the next module load will have problem: the rootdir is NULL
+but tcpm dir is still there, so tcpm_debugfs_init() will create
+tcpm dir again with failure, fix it by remove the tcpm dir if no
+children.
+
+Cc: stable@vger.kernel.org # v4.15+
+Fixes: 4b4e02c83167 ("typec: tcpm: Move out of staging")
+Signed-off-by: Li Jun <jun.li@nxp.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20190717080646.30421-2-jun.li@nxp.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/usb/typec/tcpm/tcpm.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
+index 7b6497c1031e..ab6456622120 100644
+--- a/drivers/usb/typec/tcpm/tcpm.c
++++ b/drivers/usb/typec/tcpm/tcpm.c
+@@ -597,6 +597,10 @@ static void tcpm_debugfs_exit(struct tcpm_port *port)
+ mutex_unlock(&port->logbuffer_lock);
+
+ debugfs_remove(port->dentry);
++ if (list_empty(&rootdir->d_subdirs)) {
++ debugfs_remove(rootdir);
++ rootdir = NULL;
++ }
+ }
+
+ #else
+--
+2.16.4
+
diff --git a/patches.drm/drm-amd-display-Fix-dc_create-failure-handling-and-6.patch b/patches.drm/drm-amd-display-Fix-dc_create-failure-handling-and-6.patch
new file mode 100644
index 0000000000..1a7ebf6ba9
--- /dev/null
+++ b/patches.drm/drm-amd-display-Fix-dc_create-failure-handling-and-6.patch
@@ -0,0 +1,65 @@
+From 0905f32977268149f06e3ce6ea4bd6d374dd891f Mon Sep 17 00:00:00 2001
+From: Julian Parkin <julian.parkin@amd.com>
+Date: Tue, 25 Jun 2019 14:55:53 -0400
+Subject: [PATCH] drm/amd/display: Fix dc_create failure handling and 666 color depths
+Git-commit: 0905f32977268149f06e3ce6ea4bd6d374dd891f
+Patch-mainline: v5.3-rc2
+References: bsc#1111666
+
+[Why]
+It is possible (but very unlikely) that constructing dc fails
+before current_state is created.
+
+We support 666 color depth in some scenarios, but this
+isn't handled in get_norm_pix_clk. It uses exactly the
+same pixel clock as the 888 case.
+
+[How]
+Check for non null current_state before destructing.
+
+Add case for 666 color depth to get_norm_pix_clk to
+avoid assertion.
+
+Signed-off-by: Julian Parkin <julian.parkin@amd.com>
+Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 6 ++++--
+ drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 1 +
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index 4ef4dc63e221..fa20201eef3a 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -502,8 +502,10 @@ void dc_stream_set_static_screen_events(struct dc *dc,
+
+ static void destruct(struct dc *dc)
+ {
+- dc_release_state(dc->current_state);
+- dc->current_state = NULL;
++ if (dc->current_state) {
++ dc_release_state(dc->current_state);
++ dc->current_state = NULL;
++ }
+
+ destroy_links(dc);
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+index a0e29c37ab69..87f97b3a4106 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+@@ -1839,6 +1839,7 @@ static int get_norm_pix_clk(const struct dc_crtc_timing *timing)
+ pix_clk /= 2;
+ if (timing->pixel_encoding != PIXEL_ENCODING_YCBCR422) {
+ switch (timing->display_color_depth) {
++ case COLOR_DEPTH_666:
+ case COLOR_DEPTH_888:
+ normalized_pix_clk = pix_clk;
+ break;
+--
+2.16.4
+
diff --git a/patches.drm/drm-amd-display-Increase-size-of-audios-array.patch b/patches.drm/drm-amd-display-Increase-size-of-audios-array.patch
new file mode 100644
index 0000000000..f83efafbf0
--- /dev/null
+++ b/patches.drm/drm-amd-display-Increase-size-of-audios-array.patch
@@ -0,0 +1,48 @@
+From 7352193a33dfc9b69ba3bf6a8caea925b96243b1 Mon Sep 17 00:00:00 2001
+From: Tai Man <taiman.wong@amd.com>
+Date: Fri, 28 Jun 2019 11:40:38 -0400
+Subject: [PATCH] drm/amd/display: Increase size of audios array
+Git-commit: 7352193a33dfc9b69ba3bf6a8caea925b96243b1
+Patch-mainline: v5.3-rc2
+References: bsc#1111666
+
+[Why]
+The audios array defined in "struct resource_pool" is only 6 (MAX_PIPES)
+but the max number of audio devices (num_audio) is 7. In some projects,
+it will run out of audios array.
+
+[How]
+Incraese the audios array size to 7.
+
+Signed-off-by: Tai Man <taiman.wong@amd.com>
+Reviewed-by: Joshua Aberback <Joshua.Aberback@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/amd/display/dc/inc/core_types.h | 2 +-
+ drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/amd/display/dc/inc/core_types.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+@@ -159,7 +159,7 @@ struct resource_pool {
+ struct clock_source *clock_sources[MAX_CLOCK_SOURCES];
+ unsigned int clk_src_count;
+
+- struct audio *audios[MAX_PIPES];
++ struct audio *audios[MAX_AUDIOS];
+ unsigned int audio_count;
+ struct audio_support audio_support;
+
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
+@@ -34,6 +34,7 @@
+ * Data types shared between different Virtual HW blocks
+ ******************************************************************************/
+
++#define MAX_AUDIOS 7
+ #define MAX_PIPES 6
+
+ struct gamma_curve {
diff --git a/patches.drm/drm-amd-display-Only-enable-audio-if-speaker-allocat.patch b/patches.drm/drm-amd-display-Only-enable-audio-if-speaker-allocat.patch
new file mode 100644
index 0000000000..cc842a5591
--- /dev/null
+++ b/patches.drm/drm-amd-display-Only-enable-audio-if-speaker-allocat.patch
@@ -0,0 +1,41 @@
+From 6ac25e6d5b2fbf251e9fa2f4131d42c815b43867 Mon Sep 17 00:00:00 2001
+From: Alvin Lee <alvin.lee2@amd.com>
+Date: Thu, 4 Jul 2019 15:17:42 -0400
+Subject: [PATCH] drm/amd/display: Only enable audio if speaker allocation exists
+Git-commit: 6ac25e6d5b2fbf251e9fa2f4131d42c815b43867
+Patch-mainline: v5.3-rc2
+References: bsc#1111666
+
+[Why]
+
+In dm_helpers_parse_edid_caps, there is a corner case where no speakers
+can be allocated even though the audio mode count is greater than 0.
+Enabling audio when no speaker allocations exists can cause issues in
+the video stream.
+
+[How]
+
+Add a check to not enable audio unless one or more speaker allocations
+exist (since doing this can cause issues in the video stream).
+
+Signed-off-by: Alvin Lee <alvin.lee2@amd.com>
+Reviewed-by: Jun Lei <Jun.Lei@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+@@ -1956,7 +1956,7 @@ enum dc_status resource_map_pool_resourc
+ /* TODO: Add check if ASIC support and EDID audio */
+ if (!stream->sink->converter_disable_audio &&
+ dc_is_audio_capable_signal(pipe_ctx->stream->signal) &&
+- stream->audio_info.mode_count) {
++ stream->audio_info.mode_count && stream->audio_info.flags.all) {
+ pipe_ctx->stream_res.audio = find_first_free_audio(
+ &context->res_ctx, pool, pipe_ctx->stream_res.stream_enc->id);
+
diff --git a/patches.drm/drm-amd-display-Wait-for-backlight-programming-compl.patch b/patches.drm/drm-amd-display-Wait-for-backlight-programming-compl.patch
new file mode 100644
index 0000000000..0e1c587d93
--- /dev/null
+++ b/patches.drm/drm-amd-display-Wait-for-backlight-programming-compl.patch
@@ -0,0 +1,39 @@
+From c7990daebe71d11a9e360b5c3b0ecd1846a3a4bb Mon Sep 17 00:00:00 2001
+From: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com>
+Date: Fri, 14 Jun 2019 15:04:00 -0400
+Subject: [PATCH] drm/amd/display: Wait for backlight programming completion in set backlight level
+Git-commit: c7990daebe71d11a9e360b5c3b0ecd1846a3a4bb
+Patch-mainline: v5.3-rc2
+References: bsc#1111666
+
+[WHY]
+Currently we don't wait for blacklight programming completion in DMCU
+when setting backlight level. Some sequences such as PSR static screen
+event trigger reprogramming requires it to be complete.
+
+[How]
+Add generic wait for dmcu command completion in set backlight level.
+
+Signed-off-by: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com>
+Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/amd/display/dc/dce/dce_abm.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+@@ -242,6 +242,10 @@ static void dmcu_set_backlight_level(
+ s2 |= (level << ATOM_S2_CURRENT_BL_LEVEL_SHIFT);
+
+ REG_WRITE(BIOS_SCRATCH_2, s2);
++
++ /* waitDMCUReadyForCmd */
++ REG_WAIT(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT,
++ 0, 1, 80000);
+ }
+
+ static void dce_abm_init(struct abm *abm)
diff --git a/patches.drm/drm-amd-display-use-encoder-s-engine-id-to-find-matc.patch b/patches.drm/drm-amd-display-use-encoder-s-engine-id-to-find-matc.patch
new file mode 100644
index 0000000000..d15a4c5677
--- /dev/null
+++ b/patches.drm/drm-amd-display-use-encoder-s-engine-id-to-find-matc.patch
@@ -0,0 +1,58 @@
+From 74eda776d7a4e69ec7aa1ce30a87636f14220fbb Mon Sep 17 00:00:00 2001
+From: Tai Man <taiman.wong@amd.com>
+Date: Fri, 7 Jun 2019 17:32:27 -0400
+Subject: [PATCH] drm/amd/display: use encoder's engine id to find matched free audio device
+Git-commit: 74eda776d7a4e69ec7aa1ce30a87636f14220fbb
+Patch-mainline: v5.3-rc2
+References: bsc#1111666
+
+[Why]
+On some platforms, the encoder id 3 is not populated. So the encoders
+are not stored in right order as index (id: 0, 1, 2, 4, 5) at pool. This
+would cause encoders id 4 & id 5 to fail when finding corresponding
+audio device, defaulting to the first available audio device. As result,
+we cannot stream audio into two DP ports with encoders id 4 & id 5.
+
+[How]
+It need to create enough audio device objects (0 - 5) to perform matching.
+Then use encoder engine id to find matched audio device.
+
+Signed-off-by: Tai Man <taiman.wong@amd.com>
+Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+index 51a78283a86d..a0e29c37ab69 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+@@ -258,7 +258,7 @@ bool resource_construct(
+ * PORT_CONNECTIVITY == 1 (as instructed by HW team).
+ */
+ update_num_audio(&straps, &num_audio, &pool->audio_support);
+- for (i = 0; i < pool->pipe_count && i < num_audio; i++) {
++ for (i = 0; i < caps->num_audio; i++) {
+ struct audio *aud = create_funcs->create_audio(ctx, i);
+
+ if (aud == NULL) {
+@@ -1669,6 +1669,12 @@ static struct audio *find_first_free_audio(
+ return pool->audios[i];
+ }
+ }
++
++ /* use engine id to find free audio */
++ if ((id < pool->audio_count) && (res_ctx->is_audio_acquired[id] == false)) {
++ return pool->audios[id];
++ }
++
+ /*not found the matching one, first come first serve*/
+ for (i = 0; i < pool->audio_count; i++) {
+ if (res_ctx->is_audio_acquired[i] == false) {
+--
+2.16.4
+
diff --git a/patches.fixes/scsi-bfa-fix-calls-to-dma_set_mask_and_coherent b/patches.fixes/scsi-bfa-fix-calls-to-dma_set_mask_and_coherent
new file mode 100644
index 0000000000..ee784e243d
--- /dev/null
+++ b/patches.fixes/scsi-bfa-fix-calls-to-dma_set_mask_and_coherent
@@ -0,0 +1,73 @@
+From: Hannes Reinecke <hare@suse.de>
+Date: Mon, 18 Feb 2019 08:34:23 +0100
+Subject: scsi: bfa: fix calls to dma_set_mask_and_coherent()
+Git-commit: 11ea3824140ca994f4560c4bec6a32d257ef3e83
+Patch-mainline: v5.0
+References: bsc#1136496 jsc#SLE-4698
+
+The change to use dma_set_mask_and_coherent() incorrectly made a second
+call with the 32 bit DMA mask value when the call with the 64 bit DMA mask
+value succeeded.
+
+[mkp: fixed commit message]
+
+Fixes: a69b080025ea ("scsi: bfa: use dma_set_mask_and_coherent")
+Cc: <stable@vger.kernel.org>
+Suggested-by: Ewan D. Milne <emilne@redhat.com>
+Signed-off-by: Hannes Reinecke <hare@suse.com>
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Reviewed-by: Ewan D. Milne <emilne@redhat.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Acked-by: Lee Duncan <lduncan@suse.com>
+---
+ drivers/scsi/bfa/bfad.c | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
+
+--- a/drivers/scsi/bfa/bfad.c
++++ b/drivers/scsi/bfa/bfad.c
+@@ -730,7 +730,7 @@ bfad_init_timer(struct bfad_s *bfad)
+ int
+ bfad_pci_init(struct pci_dev *pdev, struct bfad_s *bfad)
+ {
+- int rc = -ENODEV;
++ int rc = -ENODEV;
+
+ if (pci_enable_device(pdev)) {
+ printk(KERN_ERR "pci_enable_device fail %p\n", pdev);
+@@ -742,8 +742,12 @@ bfad_pci_init(struct pci_dev *pdev, stru
+
+ pci_set_master(pdev);
+
+- if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
+- dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
++ rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
++ if (rc)
++ rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
++
++ if (rc) {
++ rc = -ENODEV;
+ printk(KERN_ERR "dma_set_mask_and_coherent fail %p\n", pdev);
+ goto out_release_region;
+ }
+@@ -1537,6 +1541,7 @@ bfad_pci_slot_reset(struct pci_dev *pdev
+ {
+ struct bfad_s *bfad = pci_get_drvdata(pdev);
+ u8 byte;
++ int rc;
+
+ dev_printk(KERN_ERR, &pdev->dev,
+ "bfad_pci_slot_reset flags: 0x%x\n", bfad->bfad_flags);
+@@ -1564,8 +1569,11 @@ bfad_pci_slot_reset(struct pci_dev *pdev
+ pci_save_state(pdev);
+ pci_set_master(pdev);
+
+- if (dma_set_mask_and_coherent(&bfad->pcidev->dev, DMA_BIT_MASK(64)) ||
+- dma_set_mask_and_coherent(&bfad->pcidev->dev, DMA_BIT_MASK(32)))
++ rc = dma_set_mask_and_coherent(&bfad->pcidev->dev, DMA_BIT_MASK(64));
++ if (rc)
++ rc = dma_set_mask_and_coherent(&bfad->pcidev->dev,
++ DMA_BIT_MASK(32));
++ if (rc)
+ goto out_disable_device;
+
+ pci_cleanup_aer_uncorrect_error_status(pdev);
diff --git a/patches.fixes/virtio-s390-fix-race-on-airq_areas.patch b/patches.fixes/virtio-s390-fix-race-on-airq_areas.patch
new file mode 100644
index 0000000000..390b4c029f
--- /dev/null
+++ b/patches.fixes/virtio-s390-fix-race-on-airq_areas.patch
@@ -0,0 +1,49 @@
+From: Halil Pasic <pasic@linux.ibm.com>
+Date: Tue, 23 Jul 2019 17:11:01 +0200
+Subject: virtio/s390: fix race on airq_areas[]
+Patch-mainline: v5.3-rc2
+Git-commit: 4f419eb14272e0698e8c55bb5f3f266cc2a21c81
+References: bsc#1145357
+
+The access to airq_areas was racy ever since the adapter interrupts got
+introduced to virtio-ccw, but since commit 39c7dcb15892 ("virtio/s390:
+make airq summary indicators DMA") this became an issue in practice as
+well. Namely before that commit the airq_info that got overwritten was
+still functional. After that commit however the two infos share a
+summary_indicator, which aggravates the situation. Which means
+auto-online mechanism occasionally hangs the boot with virtio_blk.
+
+Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
+Reported-by: Marc Hartmayer <mhartmay@linux.ibm.com>
+Reviewed-by: Cornelia Huck <cohuck@redhat.com>
+Cc: stable@vger.kernel.org
+Fixes: 96b14536d935 ("virtio-ccw: virtio-ccw adapter interrupt support.")
+Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Acked-by: Liang Yan <lyan@suse.com>
+---
+ drivers/s390/virtio/virtio_ccw.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/s390/virtio/virtio_ccw.c
++++ b/drivers/s390/virtio/virtio_ccw.c
+@@ -148,6 +148,8 @@ struct airq_info {
+ struct airq_iv *aiv;
+ };
+ static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
++static DEFINE_MUTEX(airq_areas_lock);
++
+ static u8 *summary_indicators;
+
+ static inline u8 *get_summary_indicator(struct airq_info *info)
+@@ -268,9 +270,11 @@ static unsigned long get_airq_indicator(
+ unsigned long bit, flags;
+
+ for (i = 0; i < MAX_AIRQ_AREAS && !indicator_addr; i++) {
++ mutex_lock(&airq_areas_lock);
+ if (!airq_areas[i])
+ airq_areas[i] = new_airq_info(i);
+ info = airq_areas[i];
++ mutex_unlock(&airq_areas_lock);
+ if (!info)
+ return 0;
+ write_lock_irqsave(&info->lock, flags);
diff --git a/series.conf b/series.conf
index 978c3f9809..5cdebf3d9e 100644
--- a/series.conf
+++ b/series.conf
@@ -11778,6 +11778,7 @@
patches.drivers/mmc-core-export-a-few-functions-needed-for-blkmq-support.patch
patches.drivers/mmc-sdhci-msm-fix-issue-with-power-irq
patches.drivers/mmc-Kconfig-Enable-CONFIG_MMC_SDHCI_IO_ACCESSORS.patch
+ patches.drivers/sdhci-fujitsu-add-support-for-setting-the-CMD_DAT_DE.patch
patches.drivers/tpm_tis-make-array-cmd_getticks-static-const-to-shrink-object-code-size.patch
patches.drivers/tpm-183-constify-transmit-data-pointers.patch
patches.drivers/0020-tpm-tpm_crb-Use-start-method-value-from-ACPI-table-d.patch
@@ -38369,6 +38370,7 @@
patches.fixes/scsi-libfc-Add-lockdep-annotations.patch
patches.fixes/scsi-libfc-fixup-sleeping-function-called-from-inval.patch
patches.drivers/scsi-aacraid-remove-AAC_STAT_GOOD-define.patch
+ patches.drivers/scsi-bfa-remove-scsiresult-macro
patches.fixes/scsi-libfc-fixup-lockdep-annotations.patch
patches.fixes/scsi-libfc-hold-disc_mutex-in-fc_disc_stop_rports.patch
patches.fixes/scsi-libfc-Add-WARN_ON-when-deleting-rports.patch
@@ -41619,8 +41621,10 @@
patches.drivers/scsi-be2iscsi-fix-spelling-mistake-retreiving-retrieving
patches.drivers/scsi-megaraid_sas-fix-a-missing-check-bug.patch
patches.drivers/scsi-qla2xxx-Remove-unnecessary-self-assignment.patch
+ patches.drivers/scsi-bfa-remove-unused-functions
patches.drivers/scsi-qla2xxx-Simplify-conditional-check.patch
patches.drivers/scsi-cxgb4i-add-dcb-support-for-iscsi-connections
+ patches.drivers/scsi-bfa-avoid-implicit-enum-conversion-in-bfad_im_post_vendor_event
patches.fixes/scsi-ufs-Schedule-clk-gating-work-on-correct-queue.patch
patches.drivers/scsi-be2iscsi-switch-to-generic-dma-api
patches.drivers/scsi-csiostor-switch-to-generic-dma-api.patch
@@ -43718,6 +43722,7 @@
patches.fixes/timekeeping-Use-proper-seqcount-initializer.patch
patches.fixes/clocksource-drivers-integrator-ap-Add-missing-of_nod.patch
patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch
+ patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch
patches.drivers/0002-Documentation-perf-Add-documentation-for-ThunderX2-P.patch
patches.drivers/0001-drivers-perf-Add-Cavium-ThunderX2-SoC-UNCORE-PMU-dri.patch
patches.arch/kvm-nvmx-set-vm-instruction-error-for-vmptrld-of-unbacked-page
@@ -44217,6 +44222,7 @@
patches.drivers/scsi-pmcraid-simplify-pmcraid_cancel_all-a-bit.patch
patches.drivers/scsi-pmcraid-don-t-allocate-a-dma-coherent-buffer-fo.patch
patches.drivers/scsi-pmcraid-use-generic-DMA-API.patch
+ patches.drivers/scsi-bfa-use-dma_set_mask_and_coherent
patches.drivers/scsi-hisi_sas-use-dma_set_mask_and_coherent.patch
patches.drivers/scsi-lpfc-use-dma_set_mask_and_coherent.patch
patches.drivers/scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch
@@ -44297,6 +44303,7 @@
patches.drivers/scsi-megaraid_sas-Use-63-bit-DMA-addressing.patch
patches.drivers/scsi-megaraid_sas-driver-version-update-to-07.707.50.00.patch
patches.drivers/scsi-csiostor-fix-incorrect-dma-device-in-case-of-vport
+ patches.drivers/scsi-bfa-clean-up-a-couple-of-indentation-issues
patches.drivers/scsi-lpfc-Fix-link-state-reporting-for-trunking-when.patch
patches.drivers/scsi-lpfc-Correct-MDS-loopback-diagnostics-support.patch
patches.drivers/scsi-lpfc-update-fault-value-on-successful-trunk-eve.patch
@@ -45260,6 +45267,7 @@
patches.drivers/geneve-correctly-handle-ipv6.disable-module-paramete.patch
patches.suse/net-sit-fix-memory-leak-in-sit_init_net.patch
patches.drivers/scsi-lpfc-fix-calls-to-dma_set_mask_and_coherent.patch
+ patches.fixes/scsi-bfa-fix-calls-to-dma_set_mask_and_coherent
patches.fixes/scsi-csiostor-fix-calls-to-dma_set_mask_and_coherent
patches.arch/x86-uaccess-don-t-leak-the-ac-flag-into-_put_user-value-evaluation.patch
patches.suse/msft-hv-1843-x86-hyper-v-Fix-definition-of-HV_MAX_FLUSH_REP_COUNT.patch
@@ -45270,6 +45278,9 @@
patches.fixes/vfio_pci-Enable-memory-accesses-before-calling-pci_m.patch
patches.drivers/mtd-docg3-Fix-passing-zero-to-PTR_ERR-warning-in-doc.patch
patches.drivers/mtd-docg3-fix-a-possible-memory-leak-of-mtd-name.patch
+ patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch
+ patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch
+ patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch
patches.drivers/mmc-sdhci-esdhc-imx-fix-HS400-timing-issue.patch
patches.drivers/mmc-sdhci-brcmstb-handle-mmc_of_parse-errors-during-.patch
patches.drivers/mmc-omap-fix-the-maximum-timeout-setting.patch
@@ -45281,9 +45292,15 @@
patches.drivers/regulator-pv88090-Fix-array-out-of-bounds-access.patch
patches.drivers/regulator-wm831x-dcdc-Fix-list-of-wm831x_dcdc_ilim-f.patch
patches.drivers/regulator-act8865-Fix-act8600_sudcdc_voltage_ranges-.patch
+ patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch
+ patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch
patches.drivers/spi-topcliff_pch-Fix-potential-NULL-dereference-on-a.patch
patches.drivers/spi-ti-qspi-Fix-mmap-read-when-more-than-one-CS-in-u.patch
patches.drivers/spi-pxa2xx-Setup-maximum-supported-DMA-transfer-leng.patch
+ patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch
+ patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch
+ patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch
+ patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch
patches.drivers/leds-lp55xx-fix-null-deref-on-firmware-load-failure.patch
patches.drivers/ice-Refactor-a-few-Tx-scheduler-functions.patch
patches.drivers/ice-Configure-RSS-LUT-and-HASH-KEY-in-rebuild-path.patch
@@ -45608,6 +45625,8 @@
patches.arch/powercap-intel_rapl-add-support-for-Jacobsville.patch
patches.drivers/cpufreq-Use-struct-kobj_attribute-instead-of-struct-.patch
patches.drivers/cpufreq-tegra124-add-missing-of_node_put.patch
+ patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch
+ patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch
patches.drivers/cpufreq-acpi-cpufreq-Report-if-CPU-doesn-t-support-b.patch
patches.drivers/ACPI-video-Refactor-and-fix-dmi_is_desktop.patch
patches.drivers/ACPI-video-Extend-chassis-type-detection-with-a-Lunc.patch
@@ -45916,9 +45935,13 @@
patches.drivers/scsi-hisi_sas-add-debugfs-cq-file-and-add-file-operations.patch
patches.drivers/scsi-hisi_sas-add-debugfs-dq-file-and-add-file-operations.patch
patches.drivers/scsi-hisi_sas-add-debugfs-iost-file-and-add-file-operations.patch
+ patches.drivers/scsi-bfa-bfa_fcs_lport-mark-expected-switch-fall-throughs
+ patches.drivers/scsi-bfa-bfa_fcs_rport-mark-expected-switch-fall-throughs
+ patches.drivers/scsi-bfa-bfa_ioc-mark-expected-switch-fall-throughs
patches.drivers/scsi-qla2xxx-Add-protection-mask-module-parameters.patch
patches.drivers/scsi-qla2xxx-Fix-DMA-error-when-the-DIF-sg-buffer-cr.patch
patches.drivers/scsi-libsas-support-sata-phy-connection-rate-unmatch-fixing-during-discovery
+ patches.drivers/scsi-bfa-no-need-to-check-return-value-of-debugfs_create-functions
patches.drivers/scsi-csiostor-no-need-to-check-return-value-of-debugfs_create-functions
patches.drivers/scsi-qla2xxx-no-need-to-check-return-value-of-debugf.patch
patches.drivers/scsi-hpsa-clean-up-two-indentation-issues
@@ -46690,6 +46713,7 @@
patches.drivers/mwifiex-Make-resume-actually-do-something-useful-aga.patch
patches.drivers/iwlwifi-mvm-check-for-length-correctness-in-iwl_mvm_.patch
patches.drivers/iwlwifi-fix-driver-operation-for-5350.patch
+ patches.drivers/ath10k-Drop-WARN_ON-s-that-always-trigger-during-sys.patch
patches.suse/sctp-avoid-running-the-sctp-state-machine-recursivel.patch
patches.fixes/packet-in-recvmsg-msg_name-return-at-least-sizeof-so.patch
patches.suse/packet-validate-msg_namelen-in-send-directly.patch
@@ -46738,6 +46762,7 @@
patches.arch/s390-pci-add-parameter-to-disable-usage-of-mio-instructions
patches.arch/s390-enable-processes-for-mio-instructions
patches.fixes/ACPI-button-reinitialize-button-state-upon-resume.patch
+ patches.drivers/0002-cpufreq-qoriq-add-support-for-lx2160a.patch
patches.drivers/cpufreq-kirkwood-fix-possible-object-reference-leak.patch
patches.drivers/cpufreq-pasemi-fix-possible-object-reference-leak.patch
patches.drivers/cpufreq-pmac32-fix-possible-object-reference-leak.patch
@@ -46861,6 +46886,7 @@
patches.suse/0019-bcache-make-is_discard_enabled-static.patch
patches.fixes/nvme-multipath-split-bios-with-the-ns_head-bio_set-b.patch
patches.fixes/blk-mq-free-hw-queue-s-resource-in-hctx-s-release-handler.patch
+ patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch
patches.fixes/audit-fix-a-memleak-caused-by-auditing-load-module.patch
patches.fixes/audit-fix-a-memory-leak-bug.patch
patches.fixes/ext4-make-sanity-check-in-mballoc-more-strict.patch
@@ -47456,6 +47482,7 @@
patches.drivers/clk-rockchip-fix-wrong-clock-definitions-for-rk3328.patch
patches.drivers/clk-rockchip-Fix-video-codec-clocks-on-rk3288.patch
patches.drivers/clk-rockchip-Turn-on-aclk_dmac1-for-suspend-on-rk328.patch
+ patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch
patches.drivers/clk-tegra-Fix-PLLM-programming-on-Tegra124-when-PMC-.patch
patches.suse/ipv4-Fix-raw-socket-lookup-for-local-traffic.patch
patches.drivers/net-hns3-remove-redundant-assignment-of-l2_hdr-to-it.patch
@@ -48240,6 +48267,14 @@
patches.drivers/scsi-mpt3sas-Mark-expected-switch-fall-through.patch
patches.drivers/scsi-mpt3sas-make-driver-options-visible-in-sys.patch
patches.drivers/scsi-mpt3sas-use-DEVICE_ATTR_-RO-RW.patch
+ patches.drivers/scsi-bnx2fc-redo-setting-source-fcoe-mac
+ patches.drivers/scsi-bnx2fc-only-put-reference-to-io_req-in-bnx2fc_abts_cleanup-if-cleanup-times-out
+ patches.drivers/scsi-bnx2fc-separate-out-completion-flags-and-variables-for-abort-and-cleanup
+ patches.drivers/scsi-bnx2fc-do-not-allow-both-a-cleanup-completion-and-abort-completion-for-the-same-request
+ patches.drivers/scsi-bnx2fc-limit-the-io-size-according-to-the-fw-capability
+ patches.drivers/scsi-bnx2fc-update-the-driver-version-to-2-12-10
+ patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_rec
+ patches.drivers/scsi-bnx2fc-fix-bnx2fc_cmd-refcount-imbalance-in-send_srr
patches.drivers/scsi-mpt3sas-Remove-CPU-arch-check-to-determine-perf.patch
patches.drivers/scsi-mpt3sas-Use-configured-PCIe-link-speed-not-max.patch
patches.drivers/scsi-mpt3sas-Determine-smp-affinity-on-per-HBA-basis.patch
@@ -48382,6 +48417,7 @@
patches.drivers/rtc-pcf8563-Fix-interrupt-trigger-method.patch
patches.drivers/rtc-pcf8563-Clear-event-flags-and-disable-interrupts.patch
patches.drivers/clk-qcom-Fix-Wunused-const-variable.patch
+ patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch
patches.drivers/clk-bcm2835-remove-pllb.patch
patches.drivers/clk-bcm283x-add-driver-interfacing-with-raspberry-pi-s-firmware.patch
patches.drivers/firmware-raspberrypi-register-clk-device.patch
@@ -48412,6 +48448,7 @@
patches.fixes/crypto-ccp-Fix-SEV_VERSION_GREATER_OR_EQUAL.patch
patches.drm/drm-nouveau-i2c-Enable-i2c-pads-busses-during-preini.patch
patches.drm/drm-nouveau-fix-memory-leak-in-nouveau_conn_reset.patch
+ patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch
patches.drivers/firmware-ti_sci-Always-request-response-from-firmwar.patch
patches.arch/kvm-svm-fix-detection-of-amd-errata-1096
patches.arch/kvm-x86-vpmu-refine-kvm_pmu-err-msg-when-event-creation-failed
@@ -48431,6 +48468,7 @@
patches.arch/powerpc-papr_scm-Update-drc_pmem_unbind-to-use-H_SCM.patch
patches.arch/powerpc-papr_scm-Force-a-scm-unbind-if-initial-scm-b.patch
patches.drivers/hwmon-nct6775-Fix-register-address-and-added-missed-.patch
+ patches.drivers/iommu-iova-remove-stale-cached32_node
patches.drivers/iommu-amd-add-support-for-x2apic-iommu-interrupts
patches.drivers/ALSA-hda-Optimize-resume-for-codecs-without-jack-det.patch
patches.drivers/ALSA-line6-Fix-wrong-altsetting-for-LINE6_PODHD500_1.patch
@@ -48443,11 +48481,17 @@
patches.drivers/ALSA-hda-Add-a-conexant-codec-entry-to-let-mute-led-.patch
patches.fixes/nvme-fix-memory-leak-caused-by-incorrect-subsystem-free.patch
patches.fixes/ACPI-IORT-Fix-off-by-one-check-in-iort_dev_find_its_.patch
+ patches.drm/drm-amd-display-Wait-for-backlight-programming-compl.patch
+ patches.drm/drm-amd-display-use-encoder-s-engine-id-to-find-matc.patch
+ patches.drm/drm-amd-display-Fix-dc_create-failure-handling-and-6.patch
+ patches.drm/drm-amd-display-Only-enable-audio-if-speaker-allocat.patch
+ patches.drm/drm-amd-display-Increase-size-of-audios-array.patch
patches.drivers/scsi-ibmvfc-fix-WARN_ON-during-event-pool-release.patch
patches.fixes/drivers-base-introduce-kill_device.patch
patches.fixes/libnvdimm-bus-prevent-duplicate-device_unregister-calls.patch
patches.fixes/libnvdimm-region-register-badblocks-before-namespaces.patch
patches.arch/s390-dma-provide-proper-ARCH_ZONE_DMA_BITS
+ patches.fixes/virtio-s390-fix-race-on-airq_areas.patch
patches.drivers/tty-ldsem-locking-rwsem-Add-missing-ACQUIRE-to-read_.patch
patches.fixes/sched-fair-Don-t-free-p-numa_faults-with-concurrent-.patch
patches.fixes/sched-fair-Use-RCU-accessors-consistently-for-numa_g.patch
@@ -48479,14 +48523,26 @@
patches.drm/drm-i915-gvt-fix-incorrect-cache-entry-for-guest-pag.patch
patches.drm/drm-bridge-lvds-encoder-Fix-build-error-while-CONFIG.patch
patches.drm/drm-exynos-fix-missing-decrement-of-retry-counter.patch
+ patches.arch/powerpc-nvdimm-Pick-nearby-online-node-if-the-device.patch
patches.drivers/0013-HID-wacom-fix-bit-shift-for-Cintiq-Companion-2.patch
patches.drivers/HID-Add-quirk-for-HP-X1200-PIXART-OEM-mouse.patch
patches.drivers/hid-input-fix-a4tech-horizontal-wheel-custom-usage.patch
patches.fixes/bonding-Force-slave-speed-check-after-link-state-rec.patch
+ patches.drivers/net-mvpp2-Don-t-check-for-3-consecutive-Idle-frames-.patch
patches.drivers/sky2-Disable-MSI-on-ASUS-P6T.patch
patches.drivers/0003-can-rcar_canfd-fix-possible-IRQ-storm-on-high-load.patch
patches.drivers/0004-can-peak_usb-fix-potential-double-kfree_skb.patch
+ patches.drivers/tun-mark-small-packets-as-owned-by-the-tap-sock.patch
+ patches.drivers/bnx2x-Disable-multi-cos-feature.patch
+ patches.drivers/bpf-sockmap-sock_map_delete-needs-to-use-xchg.patch
+ patches.drivers/bpf-sockmap-synchronize_rcu-before-free-ing-map.patch
+ patches.drivers/bpf-sockmap-only-create-entry-if-ulp-is-not-already-.patch
+ patches.drivers/net-mlx5-Fix-modify_cq_in-alignment.patch
+ patches.drivers/net-phylink-Fix-flow-control-for-fixed-link.patch
+ patches.drivers/mlxsw-spectrum-Fix-error-path-in-mlxsw_sp_module_ini.patch
patches.fixes/nl-mac-80211-fix-interface-combinations-on-crypto-co.patch
+ patches.drivers/net-mlx5e-always-initialize-frag-last_in_page.patch
+ patches.drivers/net-fix-bpf_xdp_adjust_head-regression-for-generic-X.patch
patches.drivers/0005-can-peak_usb-pcan_usb_fd-Fix-info-leaks-to-USB-devic.patch
patches.drivers/0006-can-peak_usb-pcan_usb_pro-Fix-info-leaks-to-USB-devi.patch
patches.drivers/mwifiex-fix-802.11n-WPA-detection.patch
@@ -48510,10 +48566,16 @@
patches.drm/drm-rockchip-Suspend-DP-late.patch
patches.drm/drm-i915-Fix-wrong-escape-clock-divisor-init-for-GLK.patch
patches.arch/kvm-fix-leak-vcpu-s-vmcs-value-into-other-pcpu
+ patches.drivers/usb-typec-tcpm-free-log-buf-memory-when-remove-debug.patch
+ patches.drivers/usb-typec-tcpm-remove-tcpm-dir-if-no-children.patch
patches.drivers/usb-host-xhci-rcar-Fix-timeout-in-xhci_suspend.patch
+ patches.drivers/usb-typec-tcpm-Ignore-unsupported-unknown-alternate-.patch
patches.drivers/usb-yurex-Fix-use-after-free-in-yurex_delete.patch
patches.drivers/usb-iowarrior-fix-deadlock-on-disconnect.patch
patches.fixes/driver_core-Fix_use-after-free_and_double_free_on_glue.patch
+ patches.drivers/ALSA-hda-realtek-Add-quirk-for-HP-Envy-x360.patch
+ patches.drivers/ALSA-usb-audio-Fix-an-OOB-bug-in-parse_audio_mixer_u.patch
+ patches.drivers/ALSA-usb-audio-Fix-a-stack-buffer-overflow-bug-in-ch.patch
# dhowells/linux-fs keys-uefi
patches.suse/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
@@ -48848,24 +48910,11 @@
patches.drivers/0001-ahci-thunderx2-update-stop-engine-errata-delay-value.patch
patches.suse/0001-iommu-vt-d-Fix-race-condition-in-add_unmap.patch
- patches.drivers/0002-perf-arm_spe-handle-devm_kasprintf-failure.patch
patches.drivers/0001-mmc-sdhci-add-delay-after-the-last-tuning-command.patch
patches.drivers/0002-mmc-sdhci-correct-the-maximum-timeout-when-enable-CM.patch
- patches.drivers/0025-spi-spi-mem-Fix-spi_mem_dirmap_destroy-kerneldoc.patch
- patches.drivers/0026-spi-spi-mem-Fix-a-memory-leak-in-spi_mem_dirmap_dest.patch
- patches.drivers/0027-spi-spi-mem-Add-devm_spi_mem_dirmap_-create-destroy.patch
- patches.drivers/0040-mtd-spi-nor-add-opcodes-for-octal-Read-Write-command.patch
- patches.drivers/0041-mtd-spi-nor-add-octal-read-flag-for-flash-mt35xu512a.patch
- patches.drivers/0049-mtd-m25p80-add-support-of-octal-mode-I-O-transfer.patch
- patches.drivers/0001-ACPI-CPPC-Add-a-helper-to-get-desired-performance.patch
- patches.drivers/0002-cpufreq-cppc-Work-around-for-Hisilicon-CPPC-cpufreq.patch
# NXP LX2160A
- patches.drivers/0001-clk-qoriq-increase-array-size-of-cmux_to_group.patch
- patches.drivers/0002-clk-qoriq-Add-clockgen-support-for-lx2160a.patch
- patches.drivers/0003-soc-fsl-guts-Add-definition-for-LX2160A.patch
- patches.drivers/0001-ahci-qoriq-add-lx2160-platforms-support.patch
patches.drivers/0002-PCI-mobiveil-uniform-the-register-accessors.patch
patches.drivers/0003-PCI-mobiveil-format-the-code-without-function-change.patch
patches.drivers/0004-PCI-mobiveil-correct-the-returned-error-number.patch
@@ -48891,9 +48940,6 @@
patches.drivers/0024-PCI-mobiveil-add-PCIe-Gen4-RC-driver-for-NXP-Layersc.patch
patches.drivers/0025-PCI-mobiveil-ls_pcie_g4-add-Workaround-for-A-011577.patch
patches.drivers/0026-PCI-mobiveil-ls_pcie_g4-add-Workaround-for-A-011451.patch
- patches.drivers/0011-spi-spi-mem-Add-driver-for-NXP-FlexSPI-controller.patch
- patches.drivers/0012-spi-nxp-fspi-add-octal-mode-flag-bit-for-octal-suppo.patch
- patches.drivers/0013-spi-spi-mem-spi-nxp-fspi-add-module-license-info.patch
patches.drivers/Linux-v5.0-rc7-bcm2835-MMC-issues.patch