]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Sat, 17 Apr 2021 23:27:00 +0000 (19:27 -0400)
committerSasha Levin <sashal@kernel.org>
Sat, 17 Apr 2021 23:27:00 +0000 (19:27 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
24 files changed:
queue-4.19/arc-kernel-return-efault-if-copy_to_user-fails.patch [new file with mode: 0644]
queue-4.19/arm-dts-drop-duplicate-sha2md5_fck-to-fix-clk_disabl.patch [new file with mode: 0644]
queue-4.19/arm-dts-fix-moving-mmc-devices-with-aliases-for-omap.patch [new file with mode: 0644]
queue-4.19/arm-keystone-fix-integer-overflow-warning.patch [new file with mode: 0644]
queue-4.19/asoc-fsl_esai-fix-tdm-slot-setup-for-i2s-mode.patch [new file with mode: 0644]
queue-4.19/dmaengine-dw-make-it-dependent-to-has_iomem.patch [new file with mode: 0644]
queue-4.19/drm-msm-fix-a5xx-a6xx-timestamps.patch [new file with mode: 0644]
queue-4.19/gpio-sysfs-obey-valid_mask.patch [new file with mode: 0644]
queue-4.19/input-nspire-keypad-enable-interrupts-only-when-open.patch [new file with mode: 0644]
queue-4.19/lockdep-add-a-missing-initialization-hint-to-the-inf.patch [new file with mode: 0644]
queue-4.19/mac80211-clear-sta-fast_rx-when-sta-removed-from-4-a.patch [new file with mode: 0644]
queue-4.19/neighbour-disregard-dead-dst-in-neigh_update.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-dev.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-devkey.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-seclevel.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-stop-dump-llsec-devkeys-for-monitors.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-stop-dump-llsec-devs-for-monitors.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-stop-dump-llsec-keys-for-monitors.patch [new file with mode: 0644]
queue-4.19/net-ieee802154-stop-dump-llsec-seclevels-for-monitor.patch [new file with mode: 0644]
queue-4.19/net-rds-avoid-potential-use-after-free-in-rds_send_r.patch [new file with mode: 0644]
queue-4.19/net-tipc-fix-spelling-errors-in-net-tipc-module.patch [new file with mode: 0644]
queue-4.19/pcnet32-use-pci_resource_len-to-validate-pci-resourc.patch [new file with mode: 0644]
queue-4.19/scsi-scsi_transport_srp-don-t-block-target-in-srp_po.patch [new file with mode: 0644]
queue-4.19/series [new file with mode: 0644]

diff --git a/queue-4.19/arc-kernel-return-efault-if-copy_to_user-fails.patch b/queue-4.19/arc-kernel-return-efault-if-copy_to_user-fails.patch
new file mode 100644 (file)
index 0000000..34e3ff6
--- /dev/null
@@ -0,0 +1,44 @@
+From 10e59719cd0699b52341bedca01dc98e24636319 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 1 Mar 2021 20:05:48 +0800
+Subject: arc: kernel: Return -EFAULT if copy_to_user() fails
+
+From: Wang Qing <wangqing@vivo.com>
+
+[ Upstream commit 46e152186cd89d940b26726fff11eb3f4935b45a ]
+
+The copy_to_user() function returns the number of bytes remaining to be
+copied, but we want to return -EFAULT if the copy doesn't complete.
+
+Signed-off-by: Wang Qing <wangqing@vivo.com>
+Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arc/kernel/signal.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arc/kernel/signal.c b/arch/arc/kernel/signal.c
+index 48685445002e..da243420bcb5 100644
+--- a/arch/arc/kernel/signal.c
++++ b/arch/arc/kernel/signal.c
+@@ -99,7 +99,7 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
+                            sizeof(sf->uc.uc_mcontext.regs.scratch));
+       err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t));
+-      return err;
++      return err ? -EFAULT : 0;
+ }
+ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
+@@ -113,7 +113,7 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
+                               &(sf->uc.uc_mcontext.regs.scratch),
+                               sizeof(sf->uc.uc_mcontext.regs.scratch));
+       if (err)
+-              return err;
++              return -EFAULT;
+       set_current_blocked(&set);
+       regs->bta       = uregs.scratch.bta;
+-- 
+2.30.2
+
diff --git a/queue-4.19/arm-dts-drop-duplicate-sha2md5_fck-to-fix-clk_disabl.patch b/queue-4.19/arm-dts-drop-duplicate-sha2md5_fck-to-fix-clk_disabl.patch
new file mode 100644 (file)
index 0000000..cce783c
--- /dev/null
@@ -0,0 +1,42 @@
+From 06950e416941127b2a2a94ec00ced8e788539944 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 8 Mar 2021 11:26:25 +0200
+Subject: ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race
+
+From: Tony Lindgren <tony@atomide.com>
+
+[ Upstream commit 140a776833957539c84301dbdb4c3013876de118 ]
+
+We have a duplicate legacy clock defined for sha2md5_fck that can
+sometimes race with clk_disable() with the dts configured clock
+for OMAP4_SHA2MD5_CLKCTRL when unused clocks are disabled during
+boot causing an "Unhandled fault: imprecise external abort".
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/omap44xx-clocks.dtsi | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/arch/arm/boot/dts/omap44xx-clocks.dtsi b/arch/arm/boot/dts/omap44xx-clocks.dtsi
+index 279ff2f419df..c654588f9e8c 100644
+--- a/arch/arm/boot/dts/omap44xx-clocks.dtsi
++++ b/arch/arm/boot/dts/omap44xx-clocks.dtsi
+@@ -773,14 +773,6 @@
+               ti,max-div = <2>;
+       };
+-      sha2md5_fck: sha2md5_fck@15c8 {
+-              #clock-cells = <0>;
+-              compatible = "ti,gate-clock";
+-              clocks = <&l3_div_ck>;
+-              ti,bit-shift = <1>;
+-              reg = <0x15c8>;
+-      };
+-
+       usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 {
+               #clock-cells = <0>;
+               compatible = "ti,gate-clock";
+-- 
+2.30.2
+
diff --git a/queue-4.19/arm-dts-fix-moving-mmc-devices-with-aliases-for-omap.patch b/queue-4.19/arm-dts-fix-moving-mmc-devices-with-aliases-for-omap.patch
new file mode 100644 (file)
index 0000000..13f3b86
--- /dev/null
@@ -0,0 +1,55 @@
+From 04c78264e226770c75b6eb7742c4d4452de7f602 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 8 Mar 2021 11:30:45 +0200
+Subject: ARM: dts: Fix moving mmc devices with aliases for omap4 & 5
+
+From: Tony Lindgren <tony@atomide.com>
+
+[ Upstream commit 77335a040178a0456d4eabc8bf17a7ca3ee4a327 ]
+
+Fix moving mmc devices with dts aliases as discussed on the lists.
+Without this we now have internal eMMC mmc1 show up as mmc2 compared
+to the earlier order of devices.
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/omap4.dtsi | 5 +++++
+ arch/arm/boot/dts/omap5.dtsi | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
+index 8f907c235b02..046e77024567 100644
+--- a/arch/arm/boot/dts/omap4.dtsi
++++ b/arch/arm/boot/dts/omap4.dtsi
+@@ -25,6 +25,11 @@
+               i2c1 = &i2c2;
+               i2c2 = &i2c3;
+               i2c3 = &i2c4;
++              mmc0 = &mmc1;
++              mmc1 = &mmc2;
++              mmc2 = &mmc3;
++              mmc3 = &mmc4;
++              mmc4 = &mmc5;
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
+index 3c0bafe0fb05..cf66c374de4f 100644
+--- a/arch/arm/boot/dts/omap5.dtsi
++++ b/arch/arm/boot/dts/omap5.dtsi
+@@ -26,6 +26,11 @@
+               i2c2 = &i2c3;
+               i2c3 = &i2c4;
+               i2c4 = &i2c5;
++              mmc0 = &mmc1;
++              mmc1 = &mmc2;
++              mmc2 = &mmc3;
++              mmc3 = &mmc4;
++              mmc4 = &mmc5;
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+-- 
+2.30.2
+
diff --git a/queue-4.19/arm-keystone-fix-integer-overflow-warning.patch b/queue-4.19/arm-keystone-fix-integer-overflow-warning.patch
new file mode 100644 (file)
index 0000000..46203d7
--- /dev/null
@@ -0,0 +1,56 @@
+From 9e966a06f2a61786765df8a37900fc5b087a2572 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 23 Mar 2021 14:18:05 +0100
+Subject: ARM: keystone: fix integer overflow warning
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+[ Upstream commit 844b85dda2f569943e1e018fdd63b6f7d1d6f08e ]
+
+clang warns about an impossible condition when building with 32-bit
+phys_addr_t:
+
+arch/arm/mach-keystone/keystone.c:79:16: error: result of comparison of constant 51539607551 with expression of type 'phys_addr_t' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
+            mem_end   > KEYSTONE_HIGH_PHYS_END) {
+            ~~~~~~~   ^ ~~~~~~~~~~~~~~~~~~~~~~
+arch/arm/mach-keystone/keystone.c:78:16: error: result of comparison of constant 34359738368 with expression of type 'phys_addr_t' (aka 'unsigned int') is always true [-Werror,-Wtautological-constant-out-of-range-compare]
+        if (mem_start < KEYSTONE_HIGH_PHYS_START ||
+            ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~
+
+Change the temporary variable to a fixed-size u64 to avoid the warning.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Reviewed-by: Nathan Chancellor <nathan@kernel.org>
+Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
+Link: https://lore.kernel.org/r/20210323131814.2751750-1-arnd@kernel.org'
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/mach-keystone/keystone.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
+index 84613abf35a3..79ff5b953431 100644
+--- a/arch/arm/mach-keystone/keystone.c
++++ b/arch/arm/mach-keystone/keystone.c
+@@ -65,7 +65,7 @@ static void __init keystone_init(void)
+ static long long __init keystone_pv_fixup(void)
+ {
+       long long offset;
+-      phys_addr_t mem_start, mem_end;
++      u64 mem_start, mem_end;
+       mem_start = memblock_start_of_DRAM();
+       mem_end = memblock_end_of_DRAM();
+@@ -78,7 +78,7 @@ static long long __init keystone_pv_fixup(void)
+       if (mem_start < KEYSTONE_HIGH_PHYS_START ||
+           mem_end   > KEYSTONE_HIGH_PHYS_END) {
+               pr_crit("Invalid address space for memory (%08llx-%08llx)\n",
+-                      (u64)mem_start, (u64)mem_end);
++                      mem_start, mem_end);
+               return 0;
+       }
+-- 
+2.30.2
+
diff --git a/queue-4.19/asoc-fsl_esai-fix-tdm-slot-setup-for-i2s-mode.patch b/queue-4.19/asoc-fsl_esai-fix-tdm-slot-setup-for-i2s-mode.patch
new file mode 100644 (file)
index 0000000..1047869
--- /dev/null
@@ -0,0 +1,49 @@
+From abd422a86c26b7a611987864d8817bd913893c1a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 2 Apr 2021 11:14:05 +0300
+Subject: ASoC: fsl_esai: Fix TDM slot setup for I2S mode
+
+From: Alexander Shiyan <shc_work@mail.ru>
+
+[ Upstream commit e7a48c710defa0e0fef54d42b7d9e4ab596e2761 ]
+
+When using the driver in I2S TDM mode, the fsl_esai_startup()
+function rewrites the number of slots previously set by the
+fsl_esai_set_dai_tdm_slot() function to 2.
+To fix this, let's use the saved slot count value or, if TDM
+is not used and the number of slots is not set, the driver will use
+the default value (2), which is set by fsl_esai_probe().
+
+Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
+Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
+Link: https://lore.kernel.org/r/20210402081405.9892-1-shc_work@mail.ru
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/fsl/fsl_esai.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c
+index ff96db91f818..baa76337c33f 100644
+--- a/sound/soc/fsl/fsl_esai.c
++++ b/sound/soc/fsl/fsl_esai.c
+@@ -497,11 +497,13 @@ static int fsl_esai_startup(struct snd_pcm_substream *substream,
+                                  ESAI_SAICR_SYNC, esai_priv->synchronous ?
+                                  ESAI_SAICR_SYNC : 0);
+-              /* Set a default slot number -- 2 */
++              /* Set slots count */
+               regmap_update_bits(esai_priv->regmap, REG_ESAI_TCCR,
+-                                 ESAI_xCCR_xDC_MASK, ESAI_xCCR_xDC(2));
++                                 ESAI_xCCR_xDC_MASK,
++                                 ESAI_xCCR_xDC(esai_priv->slots));
+               regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR,
+-                                 ESAI_xCCR_xDC_MASK, ESAI_xCCR_xDC(2));
++                                 ESAI_xCCR_xDC_MASK,
++                                 ESAI_xCCR_xDC(esai_priv->slots));
+       }
+       return 0;
+-- 
+2.30.2
+
diff --git a/queue-4.19/dmaengine-dw-make-it-dependent-to-has_iomem.patch b/queue-4.19/dmaengine-dw-make-it-dependent-to-has_iomem.patch
new file mode 100644 (file)
index 0000000..9768f1a
--- /dev/null
@@ -0,0 +1,46 @@
+From c6502856bcd52a6c6770b765848b8d4079815879 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 24 Mar 2021 16:17:57 +0200
+Subject: dmaengine: dw: Make it dependent to HAS_IOMEM
+
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+
+[ Upstream commit 88cd1d6191b13689094310c2405394e4ce36d061 ]
+
+Some architectures do not provide devm_*() APIs. Hence make the driver
+dependent on HAVE_IOMEM.
+
+Fixes: dbde5c2934d1 ("dw_dmac: use devm_* functions to simplify code")
+Reported-by: kernel test robot <lkp@intel.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
+Link: https://lore.kernel.org/r/20210324141757.24710-1-andriy.shevchenko@linux.intel.com
+Signed-off-by: Vinod Koul <vkoul@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/dma/dw/Kconfig | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/dma/dw/Kconfig b/drivers/dma/dw/Kconfig
+index 04b9728c1d26..070860ec0ef1 100644
+--- a/drivers/dma/dw/Kconfig
++++ b/drivers/dma/dw/Kconfig
+@@ -8,6 +8,7 @@ config DW_DMAC_CORE
+ config DW_DMAC
+       tristate "Synopsys DesignWare AHB DMA platform driver"
++      depends on HAS_IOMEM
+       select DW_DMAC_CORE
+       help
+         Support the Synopsys DesignWare AHB DMA controller. This
+@@ -16,6 +17,7 @@ config DW_DMAC
+ config DW_DMAC_PCI
+       tristate "Synopsys DesignWare AHB DMA PCI driver"
+       depends on PCI
++      depends on HAS_IOMEM
+       select DW_DMAC_CORE
+       help
+         Support the Synopsys DesignWare AHB DMA controller on the
+-- 
+2.30.2
+
diff --git a/queue-4.19/drm-msm-fix-a5xx-a6xx-timestamps.patch b/queue-4.19/drm-msm-fix-a5xx-a6xx-timestamps.patch
new file mode 100644 (file)
index 0000000..96914c4
--- /dev/null
@@ -0,0 +1,56 @@
+From 3d65819248ed64e17b237d38da7d43680f700c6b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 24 Mar 2021 18:23:52 -0700
+Subject: drm/msm: Fix a5xx/a6xx timestamps
+
+From: Rob Clark <robdclark@chromium.org>
+
+[ Upstream commit 9fbd3088351b92e8c2cef6e37a39decb12a8d5bb ]
+
+They were reading a counter that was configured to ALWAYS_COUNT (ie.
+cycles that the GPU is doing something) rather than ALWAYS_ON.  This
+isn't the thing that userspace is looking for.
+
+Signed-off-by: Rob Clark <robdclark@chromium.org>
+Acked-by: Jordan Crouse <jordan@cosmicpenguin.net>
+Message-Id: <20210325012358.1759770-2-robdclark@gmail.com>
+Signed-off-by: Rob Clark <robdclark@chromium.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 4 ++--
+ drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+index 776bbe9775e9..ba513018534e 100644
+--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
++++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+@@ -1194,8 +1194,8 @@ static int a5xx_pm_suspend(struct msm_gpu *gpu)
+ static int a5xx_get_timestamp(struct msm_gpu *gpu, uint64_t *value)
+ {
+-      *value = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_CP_0_LO,
+-              REG_A5XX_RBBM_PERFCTR_CP_0_HI);
++      *value = gpu_read64(gpu, REG_A5XX_RBBM_ALWAYSON_COUNTER_LO,
++              REG_A5XX_RBBM_ALWAYSON_COUNTER_HI);
+       return 0;
+ }
+diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+index c629f742a1d1..c280fdc44939 100644
+--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
++++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+@@ -713,8 +713,8 @@ static int a6xx_get_timestamp(struct msm_gpu *gpu, uint64_t *value)
+       /* Force the GPU power on so we can read this register */
+       a6xx_gmu_set_oob(&a6xx_gpu->gmu, GMU_OOB_GPU_SET);
+-      *value = gpu_read64(gpu, REG_A6XX_RBBM_PERFCTR_CP_0_LO,
+-              REG_A6XX_RBBM_PERFCTR_CP_0_HI);
++      *value = gpu_read64(gpu, REG_A6XX_CP_ALWAYS_ON_COUNTER_LO,
++              REG_A6XX_CP_ALWAYS_ON_COUNTER_HI);
+       a6xx_gmu_clear_oob(&a6xx_gpu->gmu, GMU_OOB_GPU_SET);
+       return 0;
+-- 
+2.30.2
+
diff --git a/queue-4.19/gpio-sysfs-obey-valid_mask.patch b/queue-4.19/gpio-sysfs-obey-valid_mask.patch
new file mode 100644 (file)
index 0000000..1d90b56
--- /dev/null
@@ -0,0 +1,50 @@
+From ed98e12476626793266a45b1c320ddf52e3ce371 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 29 Mar 2021 14:41:12 +0300
+Subject: gpio: sysfs: Obey valid_mask
+
+From: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+
+[ Upstream commit 23cf00ddd2e1aacf1873e43f5e0c519c120daf7a ]
+
+Do not allow exporting GPIOs which are set invalid
+by the driver's valid mask.
+
+Fixes: 726cb3ba4969 ("gpiolib: Support 'gpio-reserved-ranges' property")
+Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
+Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpiolib-sysfs.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
+index 3dbaf489a8a5..e0ccc79b239a 100644
+--- a/drivers/gpio/gpiolib-sysfs.c
++++ b/drivers/gpio/gpiolib-sysfs.c
+@@ -462,6 +462,8 @@ static ssize_t export_store(struct class *class,
+       long                    gpio;
+       struct gpio_desc        *desc;
+       int                     status;
++      struct gpio_chip        *gc;
++      int                     offset;
+       status = kstrtol(buf, 0, &gpio);
+       if (status < 0)
+@@ -473,6 +475,12 @@ static ssize_t export_store(struct class *class,
+               pr_warn("%s: invalid GPIO %ld\n", __func__, gpio);
+               return -EINVAL;
+       }
++      gc = desc->gdev->chip;
++      offset = gpio_chip_hwgpio(desc);
++      if (!gpiochip_line_is_valid(gc, offset)) {
++              pr_warn("%s: GPIO %ld masked\n", __func__, gpio);
++              return -EINVAL;
++      }
+       /* No extra locking here; FLAG_SYSFS just signifies that the
+        * request and export were done by on behalf of userspace, so
+-- 
+2.30.2
+
diff --git a/queue-4.19/input-nspire-keypad-enable-interrupts-only-when-open.patch b/queue-4.19/input-nspire-keypad-enable-interrupts-only-when-open.patch
new file mode 100644 (file)
index 0000000..ad08d84
--- /dev/null
@@ -0,0 +1,121 @@
+From ba8ead89b9506727bbdbfa8c4b9612cd7ffa8b08 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 23 Mar 2021 10:45:55 -0700
+Subject: Input: nspire-keypad - enable interrupts only when opened
+
+From: Fabian Vogt <fabian@ritter-vogt.de>
+
+[ Upstream commit 69d5ff3e9e51e23d5d81bf48480aa5671be67a71 ]
+
+The driver registers an interrupt handler in _probe, but didn't configure
+them until later when the _open function is called. In between, the keypad
+can fire an IRQ due to touchpad activity, which the handler ignores. This
+causes the kernel to disable the interrupt, blocking the keypad from
+working.
+
+Fix this by disabling interrupts before registering the handler.
+Additionally, disable them in _close, so that they're only enabled while
+open.
+
+Fixes: fc4f31461892 ("Input: add TI-Nspire keypad support")
+Signed-off-by: Fabian Vogt <fabian@ritter-vogt.de>
+Link: https://lore.kernel.org/r/3383725.iizBOSrK1V@linux-e202.suse.de
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/keyboard/nspire-keypad.c | 56 ++++++++++++++------------
+ 1 file changed, 31 insertions(+), 25 deletions(-)
+
+diff --git a/drivers/input/keyboard/nspire-keypad.c b/drivers/input/keyboard/nspire-keypad.c
+index c7f26fa3034c..cf138d836eec 100644
+--- a/drivers/input/keyboard/nspire-keypad.c
++++ b/drivers/input/keyboard/nspire-keypad.c
+@@ -96,9 +96,15 @@ static irqreturn_t nspire_keypad_irq(int irq, void *dev_id)
+       return IRQ_HANDLED;
+ }
+-static int nspire_keypad_chip_init(struct nspire_keypad *keypad)
++static int nspire_keypad_open(struct input_dev *input)
+ {
++      struct nspire_keypad *keypad = input_get_drvdata(input);
+       unsigned long val = 0, cycles_per_us, delay_cycles, row_delay_cycles;
++      int error;
++
++      error = clk_prepare_enable(keypad->clk);
++      if (error)
++              return error;
+       cycles_per_us = (clk_get_rate(keypad->clk) / 1000000);
+       if (cycles_per_us == 0)
+@@ -124,30 +130,6 @@ static int nspire_keypad_chip_init(struct nspire_keypad *keypad)
+       keypad->int_mask = 1 << 1;
+       writel(keypad->int_mask, keypad->reg_base + KEYPAD_INTMSK);
+-      /* Disable GPIO interrupts to prevent hanging on touchpad */
+-      /* Possibly used to detect touchpad events */
+-      writel(0, keypad->reg_base + KEYPAD_UNKNOWN_INT);
+-      /* Acknowledge existing interrupts */
+-      writel(~0, keypad->reg_base + KEYPAD_UNKNOWN_INT_STS);
+-
+-      return 0;
+-}
+-
+-static int nspire_keypad_open(struct input_dev *input)
+-{
+-      struct nspire_keypad *keypad = input_get_drvdata(input);
+-      int error;
+-
+-      error = clk_prepare_enable(keypad->clk);
+-      if (error)
+-              return error;
+-
+-      error = nspire_keypad_chip_init(keypad);
+-      if (error) {
+-              clk_disable_unprepare(keypad->clk);
+-              return error;
+-      }
+-
+       return 0;
+ }
+@@ -155,6 +137,11 @@ static void nspire_keypad_close(struct input_dev *input)
+ {
+       struct nspire_keypad *keypad = input_get_drvdata(input);
++      /* Disable interrupts */
++      writel(0, keypad->reg_base + KEYPAD_INTMSK);
++      /* Acknowledge existing interrupts */
++      writel(~0, keypad->reg_base + KEYPAD_INT);
++
+       clk_disable_unprepare(keypad->clk);
+ }
+@@ -215,6 +202,25 @@ static int nspire_keypad_probe(struct platform_device *pdev)
+               return -ENOMEM;
+       }
++      error = clk_prepare_enable(keypad->clk);
++      if (error) {
++              dev_err(&pdev->dev, "failed to enable clock\n");
++              return error;
++      }
++
++      /* Disable interrupts */
++      writel(0, keypad->reg_base + KEYPAD_INTMSK);
++      /* Acknowledge existing interrupts */
++      writel(~0, keypad->reg_base + KEYPAD_INT);
++
++      /* Disable GPIO interrupts to prevent hanging on touchpad */
++      /* Possibly used to detect touchpad events */
++      writel(0, keypad->reg_base + KEYPAD_UNKNOWN_INT);
++      /* Acknowledge existing GPIO interrupts */
++      writel(~0, keypad->reg_base + KEYPAD_UNKNOWN_INT_STS);
++
++      clk_disable_unprepare(keypad->clk);
++
+       input_set_drvdata(input, keypad);
+       input->id.bustype = BUS_HOST;
+-- 
+2.30.2
+
diff --git a/queue-4.19/lockdep-add-a-missing-initialization-hint-to-the-inf.patch b/queue-4.19/lockdep-add-a-missing-initialization-hint-to-the-inf.patch
new file mode 100644 (file)
index 0000000..4d5acfb
--- /dev/null
@@ -0,0 +1,43 @@
+From efcd0d0503ec0a8609bd0d2f00dd4eeb5d915493 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 21 Mar 2021 15:49:13 +0900
+Subject: lockdep: Add a missing initialization hint to the "INFO: Trying to
+ register non-static key" message
+
+From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
+
+[ Upstream commit 3a85969e9d912d5dd85362ee37b5f81266e00e77 ]
+
+Since this message is printed when dynamically allocated spinlocks (e.g.
+kzalloc()) are used without initialization (e.g. spin_lock_init()),
+suggest to developers to check whether initialization functions for objects
+were called, before making developers wonder what annotation is missing.
+
+[ mingo: Minor tweaks to the message. ]
+
+Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Link: https://lore.kernel.org/r/20210321064913.4619-1-penguin-kernel@I-love.SAKURA.ne.jp
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ kernel/locking/lockdep.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
+index 8a1758b094b7..126c6d524a0f 100644
+--- a/kernel/locking/lockdep.c
++++ b/kernel/locking/lockdep.c
+@@ -722,7 +722,8 @@ static bool assign_lock_key(struct lockdep_map *lock)
+               /* Debug-check: all keys must be persistent! */
+               debug_locks_off();
+               pr_err("INFO: trying to register non-static key.\n");
+-              pr_err("the code is fine but needs lockdep annotation.\n");
++              pr_err("The code is fine but needs lockdep annotation, or maybe\n");
++              pr_err("you didn't initialize this object before use?\n");
+               pr_err("turning off the locking correctness validator.\n");
+               dump_stack();
+               return false;
+-- 
+2.30.2
+
diff --git a/queue-4.19/mac80211-clear-sta-fast_rx-when-sta-removed-from-4-a.patch b/queue-4.19/mac80211-clear-sta-fast_rx-when-sta-removed-from-4-a.patch
new file mode 100644 (file)
index 0000000..1025188
--- /dev/null
@@ -0,0 +1,70 @@
+From e4e2436d2d4faaa5d6db0220bf7c50e55dd83383 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 19 Mar 2021 19:48:52 +0530
+Subject: mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN
+
+From: Seevalamuthu Mariappan <seevalam@codeaurora.org>
+
+[ Upstream commit dd0b45538146cb6a54d6da7663b8c3afd16ebcfd ]
+
+In some race conditions, with more clients and traffic configuration,
+below crash is seen when making the interface down. sta->fast_rx wasn't
+cleared when STA gets removed from 4-addr AP_VLAN interface. The crash is
+due to try accessing 4-addr AP_VLAN interface's net_device (fast_rx->dev)
+which has been deleted already.
+
+Resolve this by clearing sta->fast_rx pointer when STA removes
+from a 4-addr VLAN.
+
+[  239.449529] Unable to handle kernel NULL pointer dereference at virtual address 00000004
+[  239.449531] pgd = 80204000
+...
+[  239.481496] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.4.60 #227
+[  239.481591] Hardware name: Generic DT based system
+[  239.487665] task: be05b700 ti: be08e000 task.ti: be08e000
+[  239.492360] PC is at get_rps_cpu+0x2d4/0x31c
+[  239.497823] LR is at 0xbe08fc54
+...
+[  239.778574] [<80739740>] (get_rps_cpu) from [<8073cb10>] (netif_receive_skb_internal+0x8c/0xac)
+[  239.786722] [<8073cb10>] (netif_receive_skb_internal) from [<8073d578>] (napi_gro_receive+0x48/0xc4)
+[  239.795267] [<8073d578>] (napi_gro_receive) from [<c7b83e8c>] (ieee80211_mark_rx_ba_filtered_frames+0xbcc/0x12d4 [mac80211])
+[  239.804776] [<c7b83e8c>] (ieee80211_mark_rx_ba_filtered_frames [mac80211]) from [<c7b84d4c>] (ieee80211_rx_napi+0x7b8/0x8c8 [mac8
+            0211])
+[  239.815857] [<c7b84d4c>] (ieee80211_rx_napi [mac80211]) from [<c7f63d7c>] (ath11k_dp_process_rx+0x7bc/0x8c8 [ath11k])
+[  239.827757] [<c7f63d7c>] (ath11k_dp_process_rx [ath11k]) from [<c7f5b6c4>] (ath11k_dp_service_srng+0x2c0/0x2e0 [ath11k])
+[  239.838484] [<c7f5b6c4>] (ath11k_dp_service_srng [ath11k]) from [<7f55b7dc>] (ath11k_ahb_ext_grp_napi_poll+0x20/0x84 [ath11k_ahb]
+            )
+[  239.849419] [<7f55b7dc>] (ath11k_ahb_ext_grp_napi_poll [ath11k_ahb]) from [<8073ce1c>] (net_rx_action+0xe0/0x28c)
+[  239.860945] [<8073ce1c>] (net_rx_action) from [<80324868>] (__do_softirq+0xe4/0x228)
+[  239.871269] [<80324868>] (__do_softirq) from [<80324c48>] (irq_exit+0x98/0x108)
+[  239.879080] [<80324c48>] (irq_exit) from [<8035c59c>] (__handle_domain_irq+0x90/0xb4)
+[  239.886114] [<8035c59c>] (__handle_domain_irq) from [<8030137c>] (gic_handle_irq+0x50/0x94)
+[  239.894100] [<8030137c>] (gic_handle_irq) from [<803024c0>] (__irq_svc+0x40/0x74)
+
+Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
+Link: https://lore.kernel.org/r/1616163532-3881-1-git-send-email-seevalam@codeaurora.org
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/mac80211/cfg.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
+index f484f9fc62ca..6804cdd43bef 100644
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -1548,8 +1548,10 @@ static int ieee80211_change_station(struct wiphy *wiphy,
+               }
+               if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
+-                  sta->sdata->u.vlan.sta)
++                  sta->sdata->u.vlan.sta) {
++                      ieee80211_clear_fast_rx(sta);
+                       RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL);
++              }
+               if (test_sta_flag(sta, WLAN_STA_AUTHORIZED))
+                       ieee80211_vif_dec_num_mcast(sta->sdata);
+-- 
+2.30.2
+
diff --git a/queue-4.19/neighbour-disregard-dead-dst-in-neigh_update.patch b/queue-4.19/neighbour-disregard-dead-dst-in-neigh_update.patch
new file mode 100644 (file)
index 0000000..81aa9a3
--- /dev/null
@@ -0,0 +1,51 @@
+From 502bd3bb83f9eb034d96641a24840722107c659f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 19 Mar 2021 14:33:37 -0400
+Subject: neighbour: Disregard DEAD dst in neigh_update
+
+From: Tong Zhu <zhutong@amazon.com>
+
+[ Upstream commit d47ec7a0a7271dda08932d6208e4ab65ab0c987c ]
+
+After a short network outage, the dst_entry is timed out and put
+in DST_OBSOLETE_DEAD. We are in this code because arp reply comes
+from this neighbour after network recovers. There is a potential
+race condition that dst_entry is still in DST_OBSOLETE_DEAD.
+With that, another neighbour lookup causes more harm than good.
+
+In best case all packets in arp_queue are lost. This is
+counterproductive to the original goal of finding a better path
+for those packets.
+
+I observed a worst case with 4.x kernel where a dst_entry in
+DST_OBSOLETE_DEAD state is associated with loopback net_device.
+It leads to an ethernet header with all zero addresses.
+A packet with all zero source MAC address is quite deadly with
+mac80211, ath9k and 802.11 block ack.  It fails
+ieee80211_find_sta_by_ifaddr in ath9k (xmit.c). Ath9k flushes tx
+queue (ath_tx_complete_aggr). BAW (block ack window) is not
+updated. BAW logic is damaged and ath9k transmission is disabled.
+
+Signed-off-by: Tong Zhu <zhutong@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/core/neighbour.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/core/neighbour.c b/net/core/neighbour.c
+index 6e890f51b7d8..e471c32e448f 100644
+--- a/net/core/neighbour.c
++++ b/net/core/neighbour.c
+@@ -1271,7 +1271,7 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
+                        * we can reinject the packet there.
+                        */
+                       n2 = NULL;
+-                      if (dst) {
++                      if (dst && dst->obsolete != DST_OBSOLETE_DEAD) {
+                               n2 = dst_neigh_lookup_skb(dst, skb);
+                               if (n2)
+                                       n1 = n2;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-dev.patch b/queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-dev.patch
new file mode 100644 (file)
index 0000000..cfb01e8
--- /dev/null
@@ -0,0 +1,38 @@
+From abdec1255ca7739930f3975f4fa066b0a3d1c67f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:46 -0400
+Subject: net: ieee802154: forbid monitor for add llsec dev
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit 5303f956b05a2886ff42890908156afaec0f95ac ]
+
+This patch forbids to add llsec dev for monitor interfaces which we
+don't support yet. Otherwise we will access llsec mib which isn't
+initialized for monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-8-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index 6a45838fd1b3..d1e309de88b6 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -1785,6 +1785,9 @@ static int nl802154_add_llsec_dev(struct sk_buff *skb, struct genl_info *info)
+       struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
+       struct ieee802154_llsec_device dev_desc;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
++              return -EOPNOTSUPP;
++
+       if (ieee802154_llsec_parse_device(info->attrs[NL802154_ATTR_SEC_DEVICE],
+                                         &dev_desc) < 0)
+               return -EINVAL;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-devkey.patch b/queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-devkey.patch
new file mode 100644 (file)
index 0000000..1873bf2
--- /dev/null
@@ -0,0 +1,38 @@
+From 9ab5e10b06f3c681dd685945effd9530439b6cb0 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:49 -0400
+Subject: net: ieee802154: forbid monitor for add llsec devkey
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit a347b3b394868fef15b16f143719df56184be81d ]
+
+This patch forbids to add llsec devkey for monitor interfaces which we
+don't support yet. Otherwise we will access llsec mib which isn't
+initialized for monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-11-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index 6d9fc2947dd8..eaeff7c08bdf 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -1936,6 +1936,9 @@ static int nl802154_add_llsec_devkey(struct sk_buff *skb, struct genl_info *info
+       struct ieee802154_llsec_device_key key;
+       __le64 extended_addr;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
++              return -EOPNOTSUPP;
++
+       if (!info->attrs[NL802154_ATTR_SEC_DEVKEY] ||
+           nla_parse_nested(attrs, NL802154_DEVKEY_ATTR_MAX,
+                            info->attrs[NL802154_ATTR_SEC_DEVKEY],
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-seclevel.patch b/queue-4.19/net-ieee802154-forbid-monitor-for-add-llsec-seclevel.patch
new file mode 100644 (file)
index 0000000..d311546
--- /dev/null
@@ -0,0 +1,38 @@
+From 9532c41e183cb8b8c5be24f55b8f34f4694e5cd5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:52 -0400
+Subject: net: ieee802154: forbid monitor for add llsec seclevel
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit 9ec87e322428d4734ac647d1a8e507434086993d ]
+
+This patch forbids to add llsec seclevel for monitor interfaces which we
+don't support yet. Otherwise we will access llsec mib which isn't
+initialized for monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-14-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index 29916f8cfdc3..b1c55db73764 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -2138,6 +2138,9 @@ static int nl802154_add_llsec_seclevel(struct sk_buff *skb,
+       struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
+       struct ieee802154_llsec_seclevel sl;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
++              return -EOPNOTSUPP;
++
+       if (llsec_parse_seclevel(info->attrs[NL802154_ATTR_SEC_LEVEL],
+                                &sl) < 0)
+               return -EINVAL;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-stop-dump-llsec-devkeys-for-monitors.patch b/queue-4.19/net-ieee802154-stop-dump-llsec-devkeys-for-monitors.patch
new file mode 100644 (file)
index 0000000..d5e5851
--- /dev/null
@@ -0,0 +1,40 @@
+From ba21bf6b8e08ccd71c8b651607ff9c7ec4f0450c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:48 -0400
+Subject: net: ieee802154: stop dump llsec devkeys for monitors
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit 080d1a57a94d93e70f84b7a360baa351388c574f ]
+
+This patch stops dumping llsec devkeys for monitors which we don't support
+yet. Otherwise we will access llsec mib which isn't initialized for
+monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-10-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index d1e309de88b6..6d9fc2947dd8 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -1874,6 +1874,11 @@ nl802154_dump_llsec_devkey(struct sk_buff *skb, struct netlink_callback *cb)
+       if (err)
+               return err;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
++              err = skb->len;
++              goto out_err;
++      }
++
+       if (!wpan_dev->netdev) {
+               err = -EINVAL;
+               goto out_err;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-stop-dump-llsec-devs-for-monitors.patch b/queue-4.19/net-ieee802154-stop-dump-llsec-devs-for-monitors.patch
new file mode 100644 (file)
index 0000000..a5f9da0
--- /dev/null
@@ -0,0 +1,40 @@
+From fd1e960a20027b5149aab720ef3c844f44d1e43b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:45 -0400
+Subject: net: ieee802154: stop dump llsec devs for monitors
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit 5582d641e6740839c9b83efd1fbf9bcd00b6f5fc ]
+
+This patch stops dumping llsec devs for monitors which we don't support
+yet. Otherwise we will access llsec mib which isn't initialized for
+monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-7-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index 86bc714a93a8..6a45838fd1b3 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -1693,6 +1693,11 @@ nl802154_dump_llsec_dev(struct sk_buff *skb, struct netlink_callback *cb)
+       if (err)
+               return err;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
++              err = skb->len;
++              goto out_err;
++      }
++
+       if (!wpan_dev->netdev) {
+               err = -EINVAL;
+               goto out_err;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-stop-dump-llsec-keys-for-monitors.patch b/queue-4.19/net-ieee802154-stop-dump-llsec-keys-for-monitors.patch
new file mode 100644 (file)
index 0000000..c4b1713
--- /dev/null
@@ -0,0 +1,40 @@
+From 117c19e1e6f3c63b5fea187a463ba0aa16a693f8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:42 -0400
+Subject: net: ieee802154: stop dump llsec keys for monitors
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit fb3c5cdf88cd504ef11d59e8d656f4bc896c6922 ]
+
+This patch stops dumping llsec keys for monitors which we don't support
+yet. Otherwise we will access llsec mib which isn't initialized for
+monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-4-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index b10b297e76b7..86bc714a93a8 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -1516,6 +1516,11 @@ nl802154_dump_llsec_key(struct sk_buff *skb, struct netlink_callback *cb)
+       if (err)
+               return err;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
++              err = skb->len;
++              goto out_err;
++      }
++
+       if (!wpan_dev->netdev) {
+               err = -EINVAL;
+               goto out_err;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-ieee802154-stop-dump-llsec-seclevels-for-monitor.patch b/queue-4.19/net-ieee802154-stop-dump-llsec-seclevels-for-monitor.patch
new file mode 100644 (file)
index 0000000..0cdf158
--- /dev/null
@@ -0,0 +1,40 @@
+From b79866bae01bf2419200497bc57262aa25be5cd9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Apr 2021 20:30:51 -0400
+Subject: net: ieee802154: stop dump llsec seclevels for monitors
+
+From: Alexander Aring <aahringo@redhat.com>
+
+[ Upstream commit 4c9b4f55ad1f5a4b6206ac4ea58f273126d21925 ]
+
+This patch stops dumping llsec seclevels for monitors which we don't
+support yet. Otherwise we will access llsec mib which isn't initialized
+for monitors.
+
+Signed-off-by: Alexander Aring <aahringo@redhat.com>
+Link: https://lore.kernel.org/r/20210405003054.256017-13-aahringo@redhat.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/ieee802154/nl802154.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
+index eaeff7c08bdf..29916f8cfdc3 100644
+--- a/net/ieee802154/nl802154.c
++++ b/net/ieee802154/nl802154.c
+@@ -2048,6 +2048,11 @@ nl802154_dump_llsec_seclevel(struct sk_buff *skb, struct netlink_callback *cb)
+       if (err)
+               return err;
++      if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
++              err = skb->len;
++              goto out_err;
++      }
++
+       if (!wpan_dev->netdev) {
+               err = -EINVAL;
+               goto out_err;
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-rds-avoid-potential-use-after-free-in-rds_send_r.patch b/queue-4.19/net-rds-avoid-potential-use-after-free-in-rds_send_r.patch
new file mode 100644 (file)
index 0000000..7034728
--- /dev/null
@@ -0,0 +1,50 @@
+From ff1a1a262bd5c9680d7c29f4d4f80ad6b82933f9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 6 Apr 2021 19:09:12 -0500
+Subject: net/rds: Avoid potential use after free in rds_send_remove_from_sock
+
+From: Aditya Pakki <pakki001@umn.edu>
+
+[ Upstream commit 0c85a7e87465f2d4cbc768e245f4f45b2f299b05 ]
+
+In case of rs failure in rds_send_remove_from_sock(), the 'rm' resource
+is freed and later under spinlock, causing potential use-after-free.
+Set the free pointer to NULL to avoid undefined behavior.
+
+Signed-off-by: Aditya Pakki <pakki001@umn.edu>
+Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/rds/message.c | 1 +
+ net/rds/send.c    | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/net/rds/message.c b/net/rds/message.c
+index 4b00b1152a5f..e35c9c914df0 100644
+--- a/net/rds/message.c
++++ b/net/rds/message.c
+@@ -180,6 +180,7 @@ void rds_message_put(struct rds_message *rm)
+               rds_message_purge(rm);
+               kfree(rm);
++              rm = NULL;
+       }
+ }
+ EXPORT_SYMBOL_GPL(rds_message_put);
+diff --git a/net/rds/send.c b/net/rds/send.c
+index 26e2c2305f7a..f480a447a432 100644
+--- a/net/rds/send.c
++++ b/net/rds/send.c
+@@ -655,7 +655,7 @@ static void rds_send_remove_from_sock(struct list_head *messages, int status)
+ unlock_and_drop:
+               spin_unlock_irqrestore(&rm->m_rs_lock, flags);
+               rds_message_put(rm);
+-              if (was_on_sock)
++              if (was_on_sock && rm)
+                       rds_message_put(rm);
+       }
+-- 
+2.30.2
+
diff --git a/queue-4.19/net-tipc-fix-spelling-errors-in-net-tipc-module.patch b/queue-4.19/net-tipc-fix-spelling-errors-in-net-tipc-module.patch
new file mode 100644 (file)
index 0000000..74f84aa
--- /dev/null
@@ -0,0 +1,67 @@
+From 406a895f9ed259e2882e7b19cf1e1bf2a40c4daa Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 7 Apr 2021 09:59:45 +0800
+Subject: net: tipc: Fix spelling errors in net/tipc module
+
+From: Zheng Yongjun <zhengyongjun3@huawei.com>
+
+[ Upstream commit a79ace4b312953c5835fafb12adc3cb6878b26bd ]
+
+These patches fix a series of spelling errors in net/tipc module.
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/tipc/bearer.h | 6 +++---
+ net/tipc/net.c    | 2 +-
+ net/tipc/node.c   | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/net/tipc/bearer.h b/net/tipc/bearer.h
+index 394290cbbb1d..00bf28a65057 100644
+--- a/net/tipc/bearer.h
++++ b/net/tipc/bearer.h
+@@ -149,9 +149,9 @@ struct tipc_media {
+  * care of initializing all other fields.
+  */
+ struct tipc_bearer {
+-      void __rcu *media_ptr;                  /* initalized by media */
+-      u32 mtu;                                /* initalized by media */
+-      struct tipc_media_addr addr;            /* initalized by media */
++      void __rcu *media_ptr;                  /* initialized by media */
++      u32 mtu;                                /* initialized by media */
++      struct tipc_media_addr addr;            /* initialized by media */
+       char name[TIPC_MAX_BEARER_NAME];
+       struct tipc_media *media;
+       struct tipc_media_addr bcast_addr;
+diff --git a/net/tipc/net.c b/net/tipc/net.c
+index 2e2e938fe4b7..18bcf2393afe 100644
+--- a/net/tipc/net.c
++++ b/net/tipc/net.c
+@@ -89,7 +89,7 @@
+  *     - A spin lock to protect the registry of kernel/driver users (reg.c)
+  *     - A global spin_lock (tipc_port_lock), which only task is to ensure
+  *       consistency where more than one port is involved in an operation,
+- *       i.e., whe a port is part of a linked list of ports.
++ *       i.e., when a port is part of a linked list of ports.
+  *       There are two such lists; 'port_list', which is used for management,
+  *       and 'wait_list', which is used to queue ports during congestion.
+  *
+diff --git a/net/tipc/node.c b/net/tipc/node.c
+index a188c2590137..201ef25fb30b 100644
+--- a/net/tipc/node.c
++++ b/net/tipc/node.c
+@@ -1406,7 +1406,7 @@ int tipc_node_xmit(struct net *net, struct sk_buff_head *list,
+ }
+ /* tipc_node_xmit_skb(): send single buffer to destination
+- * Buffers sent via this functon are generally TIPC_SYSTEM_IMPORTANCE
++ * Buffers sent via this function are generally TIPC_SYSTEM_IMPORTANCE
+  * messages, which will not be rejected
+  * The only exception is datagram messages rerouted after secondary
+  * lookup, which are rare and safe to dispose of anyway.
+-- 
+2.30.2
+
diff --git a/queue-4.19/pcnet32-use-pci_resource_len-to-validate-pci-resourc.patch b/queue-4.19/pcnet32-use-pci_resource_len-to-validate-pci-resourc.patch
new file mode 100644 (file)
index 0000000..fa74b70
--- /dev/null
@@ -0,0 +1,54 @@
+From d7d4e6f9aea279f33e46b16cc872b65a6d2fee01 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 5 Apr 2021 21:29:22 -0700
+Subject: pcnet32: Use pci_resource_len to validate PCI resource
+
+From: Guenter Roeck <linux@roeck-us.net>
+
+[ Upstream commit 66c3f05ddc538ee796321210c906b6ae6fc0792a ]
+
+pci_resource_start() is not a good indicator to determine if a PCI
+resource exists or not, since the resource may start at address 0.
+This is seen when trying to instantiate the driver in qemu for riscv32
+or riscv64.
+
+pci 0000:00:01.0: reg 0x10: [io  0x0000-0x001f]
+pci 0000:00:01.0: reg 0x14: [mem 0x00000000-0x0000001f]
+...
+pcnet32: card has no PCI IO resources, aborting
+
+Use pci_resouce_len() instead.
+
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/amd/pcnet32.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c
+index f5ad12c10934..da84660ceae1 100644
+--- a/drivers/net/ethernet/amd/pcnet32.c
++++ b/drivers/net/ethernet/amd/pcnet32.c
+@@ -1548,8 +1548,7 @@ pcnet32_probe_pci(struct pci_dev *pdev, const struct pci_device_id *ent)
+       }
+       pci_set_master(pdev);
+-      ioaddr = pci_resource_start(pdev, 0);
+-      if (!ioaddr) {
++      if (!pci_resource_len(pdev, 0)) {
+               if (pcnet32_debug & NETIF_MSG_PROBE)
+                       pr_err("card has no PCI IO resources, aborting\n");
+               err = -ENODEV;
+@@ -1562,6 +1561,8 @@ pcnet32_probe_pci(struct pci_dev *pdev, const struct pci_device_id *ent)
+                       pr_err("architecture does not support 32bit PCI busmaster DMA\n");
+               goto err_disable_dev;
+       }
++
++      ioaddr = pci_resource_start(pdev, 0);
+       if (!request_region(ioaddr, PCNET32_TOTAL_SIZE, "pcnet32_probe_pci")) {
+               if (pcnet32_debug & NETIF_MSG_PROBE)
+                       pr_err("io address range already allocated\n");
+-- 
+2.30.2
+
diff --git a/queue-4.19/scsi-scsi_transport_srp-don-t-block-target-in-srp_po.patch b/queue-4.19/scsi-scsi_transport_srp-don-t-block-target-in-srp_po.patch
new file mode 100644 (file)
index 0000000..7d9d99a
--- /dev/null
@@ -0,0 +1,52 @@
+From da18ad26c3ff3e3713d7ec0124cb4005573985be Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 1 Apr 2021 11:11:05 +0200
+Subject: scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state
+
+From: Martin Wilck <mwilck@suse.com>
+
+[ Upstream commit 5cd0f6f57639c5afbb36100c69281fee82c95ee7 ]
+
+rport_dev_loss_timedout() sets the rport state to SRP_PORT_LOST and the
+SCSI target state to SDEV_TRANSPORT_OFFLINE. If this races with
+srp_reconnect_work(), a warning is printed:
+
+Mar 27 18:48:07 ictm1604s01h4 kernel: dev_loss_tmo expired for SRP port-18:1 / host18.
+Mar 27 18:48:07 ictm1604s01h4 kernel: ------------[ cut here ]------------
+Mar 27 18:48:07 ictm1604s01h4 kernel: scsi_internal_device_block(18:0:0:100) failed: ret = -22
+Mar 27 18:48:07 ictm1604s01h4 kernel: Call Trace:
+Mar 27 18:48:07 ictm1604s01h4 kernel:  ? scsi_target_unblock+0x50/0x50 [scsi_mod]
+Mar 27 18:48:07 ictm1604s01h4 kernel:  starget_for_each_device+0x80/0xb0 [scsi_mod]
+Mar 27 18:48:07 ictm1604s01h4 kernel:  target_block+0x24/0x30 [scsi_mod]
+Mar 27 18:48:07 ictm1604s01h4 kernel:  device_for_each_child+0x57/0x90
+Mar 27 18:48:07 ictm1604s01h4 kernel:  srp_reconnect_rport+0xe4/0x230 [scsi_transport_srp]
+Mar 27 18:48:07 ictm1604s01h4 kernel:  srp_reconnect_work+0x40/0xc0 [scsi_transport_srp]
+
+Avoid this by not trying to block targets for rports in SRP_PORT_LOST
+state.
+
+Link: https://lore.kernel.org/r/20210401091105.8046-1-mwilck@suse.com
+Reviewed-by: Bart Van Assche <bvanassche@acm.org>
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/scsi_transport_srp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
+index 2aaf1b710398..9ac89462a8e0 100644
+--- a/drivers/scsi/scsi_transport_srp.c
++++ b/drivers/scsi/scsi_transport_srp.c
+@@ -555,7 +555,7 @@ int srp_reconnect_rport(struct srp_rport *rport)
+       res = mutex_lock_interruptible(&rport->mutex);
+       if (res)
+               goto out;
+-      if (rport->state != SRP_RPORT_FAIL_FAST)
++      if (rport->state != SRP_RPORT_FAIL_FAST && rport->state != SRP_RPORT_LOST)
+               /*
+                * sdev state must be SDEV_TRANSPORT_OFFLINE, transition
+                * to SDEV_BLOCK is illegal. Calling scsi_target_unblock()
+-- 
+2.30.2
+
diff --git a/queue-4.19/series b/queue-4.19/series
new file mode 100644 (file)
index 0000000..951a229
--- /dev/null
@@ -0,0 +1,23 @@
+input-nspire-keypad-enable-interrupts-only-when-open.patch
+gpio-sysfs-obey-valid_mask.patch
+dmaengine-dw-make-it-dependent-to-has_iomem.patch
+arm-dts-drop-duplicate-sha2md5_fck-to-fix-clk_disabl.patch
+arm-dts-fix-moving-mmc-devices-with-aliases-for-omap.patch
+lockdep-add-a-missing-initialization-hint-to-the-inf.patch
+arc-kernel-return-efault-if-copy_to_user-fails.patch
+neighbour-disregard-dead-dst-in-neigh_update.patch
+arm-keystone-fix-integer-overflow-warning.patch
+drm-msm-fix-a5xx-a6xx-timestamps.patch
+asoc-fsl_esai-fix-tdm-slot-setup-for-i2s-mode.patch
+scsi-scsi_transport_srp-don-t-block-target-in-srp_po.patch
+net-ieee802154-stop-dump-llsec-keys-for-monitors.patch
+net-ieee802154-stop-dump-llsec-devs-for-monitors.patch
+net-ieee802154-forbid-monitor-for-add-llsec-dev.patch
+net-ieee802154-stop-dump-llsec-devkeys-for-monitors.patch
+net-ieee802154-forbid-monitor-for-add-llsec-devkey.patch
+net-ieee802154-stop-dump-llsec-seclevels-for-monitor.patch
+net-ieee802154-forbid-monitor-for-add-llsec-seclevel.patch
+pcnet32-use-pci_resource_len-to-validate-pci-resourc.patch
+net-rds-avoid-potential-use-after-free-in-rds_send_r.patch
+net-tipc-fix-spelling-errors-in-net-tipc-module.patch
+mac80211-clear-sta-fast_rx-when-sta-removed-from-4-a.patch