]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fixes for 4.9
authorSasha Levin <sashal@kernel.org>
Fri, 18 Oct 2019 22:29:10 +0000 (18:29 -0400)
committerSasha Levin <sashal@kernel.org>
Fri, 18 Oct 2019 22:29:10 +0000 (18:29 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
12 files changed:
queue-4.9/arm-dts-am4372-set-memory-bandwidth-limit-for-dispc.patch [new file with mode: 0644]
queue-4.9/arm-omap2-fix-missing-reset-done-flag-for-am3-and-am.patch [new file with mode: 0644]
queue-4.9/mac80211-fix-txq-null-pointer-dereference.patch [new file with mode: 0644]
queue-4.9/mips-dts-ar9331-fix-interrupt-controller-size.patch [new file with mode: 0644]
queue-4.9/mips-loongson-fix-the-link-time-qualifier-of-serial_.patch [new file with mode: 0644]
queue-4.9/namespace-fix-namespace.pl-script-to-support-relativ.patch [new file with mode: 0644]
queue-4.9/net-hisilicon-fix-usage-of-uninitialized-variable-in.patch [new file with mode: 0644]
queue-4.9/nl80211-fix-null-pointer-dereference.patch [new file with mode: 0644]
queue-4.9/scsi-megaraid-disable-device-when-probe-failed-after.patch [new file with mode: 0644]
queue-4.9/scsi-qla2xxx-fix-unbound-sleep-in-fcport-delete-path.patch [new file with mode: 0644]
queue-4.9/scsi-ufs-skip-shutdown-if-hba-is-not-powered.patch [new file with mode: 0644]
queue-4.9/series [new file with mode: 0644]

diff --git a/queue-4.9/arm-dts-am4372-set-memory-bandwidth-limit-for-dispc.patch b/queue-4.9/arm-dts-am4372-set-memory-bandwidth-limit-for-dispc.patch
new file mode 100644 (file)
index 0000000..f2baed4
--- /dev/null
@@ -0,0 +1,39 @@
+From 46bce2ca9bb60f2a74f0ae7c5b57b0638f101ef2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 30 Sep 2019 11:54:50 +0300
+Subject: ARM: dts: am4372: Set memory bandwidth limit for DISPC
+
+From: Peter Ujfalusi <peter.ujfalusi@ti.com>
+
+[ Upstream commit f90ec6cdf674248dcad85bf9af6e064bf472b841 ]
+
+Set memory bandwidth limit to filter out resolutions above 720p@60Hz to
+avoid underflow errors due to the bandwidth needs of higher resolutions.
+
+am43xx can not provide enough bandwidth to DISPC to correctly handle
+'high' resolutions.
+
+Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/am4372.dtsi | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
+index c9c9a47446e8e..56224aa5e83ee 100644
+--- a/arch/arm/boot/dts/am4372.dtsi
++++ b/arch/arm/boot/dts/am4372.dtsi
+@@ -1117,6 +1117,8 @@
+                               ti,hwmods = "dss_dispc";
+                               clocks = <&disp_clk>;
+                               clock-names = "fck";
++
++                              max-memory-bandwidth = <230000000>;
+                       };
+                       rfbi: rfbi@4832a800 {
+-- 
+2.20.1
+
diff --git a/queue-4.9/arm-omap2-fix-missing-reset-done-flag-for-am3-and-am.patch b/queue-4.9/arm-omap2-fix-missing-reset-done-flag-for-am3-and-am.patch
new file mode 100644 (file)
index 0000000..e39e36c
--- /dev/null
@@ -0,0 +1,53 @@
+From 3227cdbe597334871abd148d79aa5029f2d62fa8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 24 Sep 2019 09:25:52 -0700
+Subject: ARM: OMAP2+: Fix missing reset done flag for am3 and am43
+
+From: Tony Lindgren <tony@atomide.com>
+
+[ Upstream commit 8ad8041b98c665b6147e607b749586d6e20ba73a ]
+
+For ti,sysc-omap4 compatible devices with no sysstatus register, we do have
+reset done status available in the SOFTRESET bit that clears when the reset
+is done. This is documented for example in am437x TRM for DMTIMER_TIOCP_CFG
+register. The am335x TRM just says that SOFTRESET bit value 1 means reset is
+ongoing, but it behaves the same way clearing after reset is done.
+
+With the ti-sysc driver handling this automatically based on no sysstatus
+register defined, we see warnings if SYSC_HAS_RESET_STATUS is missing in the
+legacy platform data:
+
+ti-sysc 48042000.target-module: sysc_flags 00000222 != 00000022
+ti-sysc 48044000.target-module: sysc_flags 00000222 != 00000022
+ti-sysc 48046000.target-module: sysc_flags 00000222 != 00000022
+...
+
+Let's fix these warnings by adding SYSC_HAS_RESET_STATUS. Let's also
+remove the useless parentheses while at it.
+
+If it turns out we do have ti,sysc-omap4 compatible devices without a
+working SOFTRESET bit we can set up additional quirk handling for it.
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
+index e2d84aa7f595f..fa1c6707877a7 100644
+--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
+@@ -939,7 +939,8 @@ static struct omap_hwmod_class_sysconfig am33xx_timer_sysc = {
+       .rev_offs       = 0x0000,
+       .sysc_offs      = 0x0010,
+       .syss_offs      = 0x0014,
+-      .sysc_flags     = (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
++      .sysc_flags     = SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
++                        SYSC_HAS_RESET_STATUS,
+       .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
+                         SIDLE_SMART_WKUP),
+       .sysc_fields    = &omap_hwmod_sysc_type2,
+-- 
+2.20.1
+
diff --git a/queue-4.9/mac80211-fix-txq-null-pointer-dereference.patch b/queue-4.9/mac80211-fix-txq-null-pointer-dereference.patch
new file mode 100644 (file)
index 0000000..a12ae94
--- /dev/null
@@ -0,0 +1,77 @@
+From 5ece522957f057943bf2057309e1498e2cf1fcf4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 27 Sep 2019 10:03:16 +0800
+Subject: mac80211: fix txq null pointer dereference
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Miaoqing Pan <miaoqing@codeaurora.org>
+
+[ Upstream commit 8ed31a264065ae92058ce54aa3cc8da8d81dc6d7 ]
+
+If the interface type is P2P_DEVICE or NAN, read the file of
+'/sys/kernel/debug/ieee80211/phyx/netdev:wlanx/aqm' will get a
+NULL pointer dereference. As for those interface type, the
+pointer sdata->vif.txq is NULL.
+
+Unable to handle kernel NULL pointer dereference at virtual address 00000011
+CPU: 1 PID: 30936 Comm: cat Not tainted 4.14.104 #1
+task: ffffffc0337e4880 task.stack: ffffff800cd20000
+PC is at ieee80211_if_fmt_aqm+0x34/0xa0 [mac80211]
+LR is at ieee80211_if_fmt_aqm+0x34/0xa0 [mac80211]
+[...]
+Process cat (pid: 30936, stack limit = 0xffffff800cd20000)
+[...]
+[<ffffff8000b7cd00>] ieee80211_if_fmt_aqm+0x34/0xa0 [mac80211]
+[<ffffff8000b7c414>] ieee80211_if_read+0x60/0xbc [mac80211]
+[<ffffff8000b7ccc4>] ieee80211_if_read_aqm+0x28/0x30 [mac80211]
+[<ffffff80082eff94>] full_proxy_read+0x2c/0x48
+[<ffffff80081eef00>] __vfs_read+0x2c/0xd4
+[<ffffff80081ef084>] vfs_read+0x8c/0x108
+[<ffffff80081ef494>] SyS_read+0x40/0x7c
+
+Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
+Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
+Link: https://lore.kernel.org/r/1569549796-8223-1-git-send-email-miaoqing@codeaurora.org
+[trim useless data from commit message]
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/mac80211/debugfs_netdev.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
+index bcec1240f41d9..9769db9818d2f 100644
+--- a/net/mac80211/debugfs_netdev.c
++++ b/net/mac80211/debugfs_netdev.c
+@@ -490,9 +490,14 @@ static ssize_t ieee80211_if_fmt_aqm(
+       const struct ieee80211_sub_if_data *sdata, char *buf, int buflen)
+ {
+       struct ieee80211_local *local = sdata->local;
+-      struct txq_info *txqi = to_txq_info(sdata->vif.txq);
++      struct txq_info *txqi;
+       int len;
++      if (!sdata->vif.txq)
++              return 0;
++
++      txqi = to_txq_info(sdata->vif.txq);
++
+       spin_lock_bh(&local->fq.lock);
+       rcu_read_lock();
+@@ -657,7 +662,9 @@ static void add_common_files(struct ieee80211_sub_if_data *sdata)
+       DEBUGFS_ADD(rc_rateidx_vht_mcs_mask_5ghz);
+       DEBUGFS_ADD(hw_queues);
+-      if (sdata->local->ops->wake_tx_queue)
++      if (sdata->local->ops->wake_tx_queue &&
++          sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE &&
++          sdata->vif.type != NL80211_IFTYPE_NAN)
+               DEBUGFS_ADD(aqm);
+ }
+-- 
+2.20.1
+
diff --git a/queue-4.9/mips-dts-ar9331-fix-interrupt-controller-size.patch b/queue-4.9/mips-dts-ar9331-fix-interrupt-controller-size.patch
new file mode 100644 (file)
index 0000000..85d5614
--- /dev/null
@@ -0,0 +1,42 @@
+From 73acf28f52f244dec242b04dc5916df216b7d9c2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 30 Sep 2019 11:39:52 +0200
+Subject: MIPS: dts: ar9331: fix interrupt-controller size
+
+From: Oleksij Rempel <o.rempel@pengutronix.de>
+
+[ Upstream commit 0889d07f3e4b171c453b2aaf2b257f9074cdf624 ]
+
+It is two registers each of 4 byte.
+
+Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
+Signed-off-by: Paul Burton <paul.burton@mips.com>
+Cc: Rob Herring <robh+dt@kernel.org>
+Cc: Mark Rutland <mark.rutland@arm.com>
+Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
+Cc: Ralf Baechle <ralf@linux-mips.org>
+Cc: James Hogan <jhogan@kernel.org>
+Cc: devicetree@vger.kernel.org
+Cc: linux-mips@vger.kernel.org
+Cc: linux-kernel@vger.kernel.org
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/mips/boot/dts/qca/ar9331.dtsi | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/mips/boot/dts/qca/ar9331.dtsi b/arch/mips/boot/dts/qca/ar9331.dtsi
+index cf47ed4d85694..1fda24fc18606 100644
+--- a/arch/mips/boot/dts/qca/ar9331.dtsi
++++ b/arch/mips/boot/dts/qca/ar9331.dtsi
+@@ -98,7 +98,7 @@
+                       miscintc: interrupt-controller@18060010 {
+                               compatible = "qca,ar7240-misc-intc";
+-                              reg = <0x18060010 0x4>;
++                              reg = <0x18060010 0x8>;
+                               interrupt-parent = <&cpuintc>;
+                               interrupts = <6>;
+-- 
+2.20.1
+
diff --git a/queue-4.9/mips-loongson-fix-the-link-time-qualifier-of-serial_.patch b/queue-4.9/mips-loongson-fix-the-link-time-qualifier-of-serial_.patch
new file mode 100644 (file)
index 0000000..933618e
--- /dev/null
@@ -0,0 +1,41 @@
+From 6c257f1cd5f1c97786717ce730d30710827996b5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 10 Sep 2019 05:59:07 +0200
+Subject: mips: Loongson: Fix the link time qualifier of 'serial_exit()'
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+[ Upstream commit 25b69a889b638b0b7e51e2c4fe717a66bec0e566 ]
+
+'exit' functions should be marked as __exit, not __init.
+
+Fixes: 85cc028817ef ("mips: make loongsoon serial driver explicitly modular")
+Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Signed-off-by: Paul Burton <paul.burton@mips.com>
+Cc: chenhc@lemote.com
+Cc: ralf@linux-mips.org
+Cc: jhogan@kernel.org
+Cc: linux-mips@vger.kernel.org
+Cc: linux-kernel@vger.kernel.org
+Cc: kernel-janitors@vger.kernel.org
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/mips/loongson64/common/serial.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/mips/loongson64/common/serial.c b/arch/mips/loongson64/common/serial.c
+index ffefc1cb26121..98c3a7feb10f8 100644
+--- a/arch/mips/loongson64/common/serial.c
++++ b/arch/mips/loongson64/common/serial.c
+@@ -110,7 +110,7 @@ static int __init serial_init(void)
+ }
+ module_init(serial_init);
+-static void __init serial_exit(void)
++static void __exit serial_exit(void)
+ {
+       platform_device_unregister(&uart8250_device);
+ }
+-- 
+2.20.1
+
diff --git a/queue-4.9/namespace-fix-namespace.pl-script-to-support-relativ.patch b/queue-4.9/namespace-fix-namespace.pl-script-to-support-relativ.patch
new file mode 100644 (file)
index 0000000..8b7a27b
--- /dev/null
@@ -0,0 +1,86 @@
+From e5712e07f1e7cabe5139863f63f23eed5a9572f0 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 27 Sep 2019 16:30:27 -0700
+Subject: namespace: fix namespace.pl script to support relative paths
+
+From: Jacob Keller <jacob.e.keller@intel.com>
+
+[ Upstream commit 82fdd12b95727640c9a8233c09d602e4518e71f7 ]
+
+The namespace.pl script does not work properly if objtree is not set to
+an absolute path. The do_nm function is run from within the find
+function, which changes directories.
+
+Because of this, appending objtree, $File::Find::dir, and $source, will
+return a path which is not valid from the current directory.
+
+This used to work when objtree was set to an absolute path when using
+"make namespacecheck". It appears to have not worked when calling
+./scripts/namespace.pl directly.
+
+This behavior was changed in 7e1c04779efd ("kbuild: Use relative path
+for $(objtree)", 2014-05-14)
+
+Rather than fixing the Makefile to set objtree to an absolute path, just
+fix namespace.pl to work when srctree and objtree are relative. Also fix
+the script to use an absolute path for these by default.
+
+Use the File::Spec module for this purpose. It's been part of perl
+5 since 5.005.
+
+The curdir() function is used to get the current directory when the
+objtree and srctree aren't set in the environment.
+
+rel2abs() is used to convert possibly relative objtree and srctree
+environment variables to absolute paths.
+
+Finally, the catfile() function is used instead of string appending
+paths together, since this is more robust when joining paths together.
+
+Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
+Acked-by: Randy Dunlap <rdunlap@infradead.org>
+Tested-by: Randy Dunlap <rdunlap@infradead.org>
+Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ scripts/namespace.pl | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/scripts/namespace.pl b/scripts/namespace.pl
+index 9f3c9d47a4a5d..4dddd4c01b625 100755
+--- a/scripts/namespace.pl
++++ b/scripts/namespace.pl
+@@ -65,13 +65,14 @@
+ require 5;    # at least perl 5
+ use strict;
+ use File::Find;
++use File::Spec;
+ my $nm = ($ENV{'NM'} || "nm") . " -p";
+ my $objdump = ($ENV{'OBJDUMP'} || "objdump") . " -s -j .comment";
+-my $srctree = "";
+-my $objtree = "";
+-$srctree = "$ENV{'srctree'}/" if (exists($ENV{'srctree'}));
+-$objtree = "$ENV{'objtree'}/" if (exists($ENV{'objtree'}));
++my $srctree = File::Spec->curdir();
++my $objtree = File::Spec->curdir();
++$srctree = File::Spec->rel2abs($ENV{'srctree'}) if (exists($ENV{'srctree'}));
++$objtree = File::Spec->rel2abs($ENV{'objtree'}) if (exists($ENV{'objtree'}));
+ if ($#ARGV != -1) {
+       print STDERR "usage: $0 takes no parameters\n";
+@@ -231,9 +232,9 @@ sub do_nm
+       }
+       ($source = $basename) =~ s/\.o$//;
+       if (-e "$source.c" || -e "$source.S") {
+-              $source = "$objtree$File::Find::dir/$source";
++              $source = File::Spec->catfile($objtree, $File::Find::dir, $source)
+       } else {
+-              $source = "$srctree$File::Find::dir/$source";
++              $source = File::Spec->catfile($srctree, $File::Find::dir, $source)
+       }
+       if (! -e "$source.c" && ! -e "$source.S") {
+               # No obvious source, exclude the object if it is conglomerate
+-- 
+2.20.1
+
diff --git a/queue-4.9/net-hisilicon-fix-usage-of-uninitialized-variable-in.patch b/queue-4.9/net-hisilicon-fix-usage-of-uninitialized-variable-in.patch
new file mode 100644 (file)
index 0000000..478a0ca
--- /dev/null
@@ -0,0 +1,46 @@
+From d1dca808724fb17c246e0b0dccf4b2bcf0cad387 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 1 Oct 2019 13:24:39 -0700
+Subject: net: hisilicon: Fix usage of uninitialized variable in function
+ mdio_sc_cfg_reg_write()
+
+From: Yizhuo <yzhai003@ucr.edu>
+
+[ Upstream commit 53de429f4e88f538f7a8ec2b18be8c0cd9b2c8e1 ]
+
+In function mdio_sc_cfg_reg_write(), variable "reg_value" could be
+uninitialized if regmap_read() fails. However, "reg_value" is used
+to decide the control flow later in the if statement, which is
+potentially unsafe.
+
+Signed-off-by: Yizhuo <yzhai003@ucr.edu>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/hisilicon/hns_mdio.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/hisilicon/hns_mdio.c b/drivers/net/ethernet/hisilicon/hns_mdio.c
+index de23a0ead5d76..d06efcd5f13b1 100644
+--- a/drivers/net/ethernet/hisilicon/hns_mdio.c
++++ b/drivers/net/ethernet/hisilicon/hns_mdio.c
+@@ -166,11 +166,15 @@ static int mdio_sc_cfg_reg_write(struct hns_mdio_device *mdio_dev,
+ {
+       u32 time_cnt;
+       u32 reg_value;
++      int ret;
+       regmap_write(mdio_dev->subctrl_vbase, cfg_reg, set_val);
+       for (time_cnt = MDIO_TIMEOUT; time_cnt; time_cnt--) {
+-              regmap_read(mdio_dev->subctrl_vbase, st_reg, &reg_value);
++              ret = regmap_read(mdio_dev->subctrl_vbase, st_reg, &reg_value);
++              if (ret)
++                      return ret;
++
+               reg_value &= st_msk;
+               if ((!!check_st) == (!!reg_value))
+                       break;
+-- 
+2.20.1
+
diff --git a/queue-4.9/nl80211-fix-null-pointer-dereference.patch b/queue-4.9/nl80211-fix-null-pointer-dereference.patch
new file mode 100644 (file)
index 0000000..36e9780
--- /dev/null
@@ -0,0 +1,62 @@
+From efeb8637ef08872314d4e0f21aa6e1e9ac24e814 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 26 Sep 2019 16:16:50 +0800
+Subject: nl80211: fix null pointer dereference
+
+From: Miaoqing Pan <miaoqing@codeaurora.org>
+
+[ Upstream commit b501426cf86e70649c983c52f4c823b3c40d72a3 ]
+
+If the interface is not in MESH mode, the command 'iw wlanx mpath del'
+will cause kernel panic.
+
+The root cause is null pointer access in mpp_flush_by_proxy(), as the
+pointer 'sdata->u.mesh.mpp_paths' is NULL for non MESH interface.
+
+Unable to handle kernel NULL pointer dereference at virtual address 00000068
+[...]
+PC is at _raw_spin_lock_bh+0x20/0x5c
+LR is at mesh_path_del+0x1c/0x17c [mac80211]
+[...]
+Process iw (pid: 4537, stack limit = 0xd83e0238)
+[...]
+[<c021211c>] (_raw_spin_lock_bh) from [<bf8c7648>] (mesh_path_del+0x1c/0x17c [mac80211])
+[<bf8c7648>] (mesh_path_del [mac80211]) from [<bf6cdb7c>] (extack_doit+0x20/0x68 [compat])
+[<bf6cdb7c>] (extack_doit [compat]) from [<c05c309c>] (genl_rcv_msg+0x274/0x30c)
+[<c05c309c>] (genl_rcv_msg) from [<c05c25d8>] (netlink_rcv_skb+0x58/0xac)
+[<c05c25d8>] (netlink_rcv_skb) from [<c05c2e14>] (genl_rcv+0x20/0x34)
+[<c05c2e14>] (genl_rcv) from [<c05c1f90>] (netlink_unicast+0x11c/0x204)
+[<c05c1f90>] (netlink_unicast) from [<c05c2420>] (netlink_sendmsg+0x30c/0x370)
+[<c05c2420>] (netlink_sendmsg) from [<c05886d0>] (sock_sendmsg+0x70/0x84)
+[<c05886d0>] (sock_sendmsg) from [<c0589f4c>] (___sys_sendmsg.part.3+0x188/0x228)
+[<c0589f4c>] (___sys_sendmsg.part.3) from [<c058add4>] (__sys_sendmsg+0x4c/0x70)
+[<c058add4>] (__sys_sendmsg) from [<c0208c80>] (ret_fast_syscall+0x0/0x44)
+Code: e2822c02 e2822001 e5832004 f590f000 (e1902f9f)
+---[ end trace bbd717600f8f884d ]---
+
+Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
+Link: https://lore.kernel.org/r/1569485810-761-1-git-send-email-miaoqing@codeaurora.org
+[trim useless data from commit message]
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/wireless/nl80211.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
+index 7aa1ca7ec638a..ac75e6d4eb82a 100644
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -5358,6 +5358,9 @@ static int nl80211_del_mpath(struct sk_buff *skb, struct genl_info *info)
+       if (!rdev->ops->del_mpath)
+               return -EOPNOTSUPP;
++      if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_MESH_POINT)
++              return -EOPNOTSUPP;
++
+       return rdev_del_mpath(rdev, dev, dst);
+ }
+-- 
+2.20.1
+
diff --git a/queue-4.9/scsi-megaraid-disable-device-when-probe-failed-after.patch b/queue-4.9/scsi-megaraid-disable-device-when-probe-failed-after.patch
new file mode 100644 (file)
index 0000000..ee5b729
--- /dev/null
@@ -0,0 +1,42 @@
+From a36894341eaa082f1eced23c94bd6108addbad57 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 7 Sep 2019 09:07:30 +0800
+Subject: scsi: megaraid: disable device when probe failed after enabled device
+
+From: Xiang Chen <chenxiang66@hisilicon.com>
+
+[ Upstream commit 70054aa39a013fa52eff432f2223b8bd5c0048f8 ]
+
+For pci device, need to disable device when probe failed after enabled
+device.
+
+Link: https://lore.kernel.org/r/1567818450-173315-1-git-send-email-chenxiang66@hisilicon.com
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Reviewed-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/megaraid.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
+index 19bffe0b2cc0a..2cbfec6a74662 100644
+--- a/drivers/scsi/megaraid.c
++++ b/drivers/scsi/megaraid.c
+@@ -4219,11 +4219,11 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
+                */
+               if (pdev->subsystem_vendor == PCI_VENDOR_ID_COMPAQ &&
+                   pdev->subsystem_device == 0xC000)
+-                      return -ENODEV;
++                      goto out_disable_device;
+               /* Now check the magic signature byte */
+               pci_read_config_word(pdev, PCI_CONF_AMISIG, &magic);
+               if (magic != HBA_SIGNATURE_471 && magic != HBA_SIGNATURE)
+-                      return -ENODEV;
++                      goto out_disable_device;
+               /* Ok it is probably a megaraid */
+       }
+-- 
+2.20.1
+
diff --git a/queue-4.9/scsi-qla2xxx-fix-unbound-sleep-in-fcport-delete-path.patch b/queue-4.9/scsi-qla2xxx-fix-unbound-sleep-in-fcport-delete-path.patch
new file mode 100644 (file)
index 0000000..9c1281e
--- /dev/null
@@ -0,0 +1,47 @@
+From 28acdc78ca0fcbe51f2f13f5a54c51541c9f8693 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 12 Sep 2019 11:09:06 -0700
+Subject: scsi: qla2xxx: Fix unbound sleep in fcport delete path.
+
+From: Quinn Tran <qutran@marvell.com>
+
+[ Upstream commit c3b6a1d397420a0fdd97af2f06abfb78adc370df ]
+
+There are instances, though rare, where a LOGO request cannot be sent out
+and the thread in free session done can wait indefinitely. Fix this by
+putting an upper bound to sleep.
+
+Link: https://lore.kernel.org/r/20190912180918.6436-3-hmadhani@marvell.com
+Signed-off-by: Quinn Tran <qutran@marvell.com>
+Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/qla2xxx/qla_target.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
+index 11f45cb998927..d13e91e164258 100644
+--- a/drivers/scsi/qla2xxx/qla_target.c
++++ b/drivers/scsi/qla2xxx/qla_target.c
+@@ -572,6 +572,7 @@ static void qlt_free_session_done(struct work_struct *work)
+       if (logout_started) {
+               bool traced = false;
++              u16 cnt = 0;
+               while (!ACCESS_ONCE(sess->logout_completed)) {
+                       if (!traced) {
+@@ -581,6 +582,9 @@ static void qlt_free_session_done(struct work_struct *work)
+                               traced = true;
+                       }
+                       msleep(100);
++                      cnt++;
++                      if (cnt > 200)
++                              break;
+               }
+               ql_dbg(ql_dbg_tgt_mgt, vha, 0xf087,
+-- 
+2.20.1
+
diff --git a/queue-4.9/scsi-ufs-skip-shutdown-if-hba-is-not-powered.patch b/queue-4.9/scsi-ufs-skip-shutdown-if-hba-is-not-powered.patch
new file mode 100644 (file)
index 0000000..1a5bbe0
--- /dev/null
@@ -0,0 +1,46 @@
+From 268063976b92bceee97d2bd85857aaafcc1efa76 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 18 Sep 2019 12:20:38 +0800
+Subject: scsi: ufs: skip shutdown if hba is not powered
+
+From: Stanley Chu <stanley.chu@mediatek.com>
+
+[ Upstream commit f51913eef23f74c3bd07899dc7f1ed6df9e521d8 ]
+
+In some cases, hba may go through shutdown flow without successful
+initialization and then make system hang.
+
+For example, if ufshcd_change_power_mode() gets error and leads to
+ufshcd_hba_exit() to release resources of the host, future shutdown flow
+may hang the system since the host register will be accessed in unpowered
+state.
+
+To solve this issue, simply add checking to skip shutdown for above kind of
+situation.
+
+Link: https://lore.kernel.org/r/1568780438-28753-1-git-send-email-stanley.chu@mediatek.com
+Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
+Acked-by: Bean Huo <beanhuo@micron.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/ufs/ufshcd.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
+index a9c172692f21d..26f259fb6e3ca 100644
+--- a/drivers/scsi/ufs/ufshcd.c
++++ b/drivers/scsi/ufs/ufshcd.c
+@@ -6492,6 +6492,9 @@ int ufshcd_shutdown(struct ufs_hba *hba)
+ {
+       int ret = 0;
++      if (!hba->is_powered)
++              goto out;
++
+       if (ufshcd_is_ufs_dev_poweroff(hba) && ufshcd_is_link_off(hba))
+               goto out;
+-- 
+2.20.1
+
diff --git a/queue-4.9/series b/queue-4.9/series
new file mode 100644 (file)
index 0000000..a5a4c73
--- /dev/null
@@ -0,0 +1,11 @@
+scsi-ufs-skip-shutdown-if-hba-is-not-powered.patch
+scsi-megaraid-disable-device-when-probe-failed-after.patch
+scsi-qla2xxx-fix-unbound-sleep-in-fcport-delete-path.patch
+arm-omap2-fix-missing-reset-done-flag-for-am3-and-am.patch
+arm-dts-am4372-set-memory-bandwidth-limit-for-dispc.patch
+mips-dts-ar9331-fix-interrupt-controller-size.patch
+nl80211-fix-null-pointer-dereference.patch
+mac80211-fix-txq-null-pointer-dereference.patch
+mips-loongson-fix-the-link-time-qualifier-of-serial_.patch
+net-hisilicon-fix-usage-of-uninitialized-variable-in.patch
+namespace-fix-namespace.pl-script-to-support-relativ.patch