]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Mar 2022 20:25:48 +0000 (21:25 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Mar 2022 20:25:48 +0000 (21:25 +0100)
added patches:
arm-9182-1-mmu-fix-returns-from-early_param-and-__setup-functions.patch
arm64-dts-rockchip-switch-rk3399-gru-dp-to-spdif-output.patch
can-gs_usb-change-active_channels-s-type-from-atomic_t-to-u8.patch
efivars-respect-block-flag-in-efivar_entry_set_safe.patch
firmware-arm_scmi-remove-space-in-module_alias-name.patch
ibmvnic-free-reset-work-item-when-flushing.patch
mac80211-fix-forwarded-mesh-frames-ac-queue-selection.patch
net-arcnet-com20020-fix-null-ptr-deref-in-com20020pci_probe.patch
net-stmmac-fix-return-value-of-__setup-handler.patch
net-sxgbe-fix-return-value-of-__setup-handler.patch

queue-4.19/arm-9182-1-mmu-fix-returns-from-early_param-and-__setup-functions.patch [new file with mode: 0644]
queue-4.19/arm64-dts-rockchip-switch-rk3399-gru-dp-to-spdif-output.patch [new file with mode: 0644]
queue-4.19/can-gs_usb-change-active_channels-s-type-from-atomic_t-to-u8.patch [new file with mode: 0644]
queue-4.19/efivars-respect-block-flag-in-efivar_entry_set_safe.patch [new file with mode: 0644]
queue-4.19/firmware-arm_scmi-remove-space-in-module_alias-name.patch [new file with mode: 0644]
queue-4.19/ibmvnic-free-reset-work-item-when-flushing.patch [new file with mode: 0644]
queue-4.19/mac80211-fix-forwarded-mesh-frames-ac-queue-selection.patch [new file with mode: 0644]
queue-4.19/net-arcnet-com20020-fix-null-ptr-deref-in-com20020pci_probe.patch [new file with mode: 0644]
queue-4.19/net-stmmac-fix-return-value-of-__setup-handler.patch [new file with mode: 0644]
queue-4.19/net-sxgbe-fix-return-value-of-__setup-handler.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/arm-9182-1-mmu-fix-returns-from-early_param-and-__setup-functions.patch b/queue-4.19/arm-9182-1-mmu-fix-returns-from-early_param-and-__setup-functions.patch
new file mode 100644 (file)
index 0000000..7ab44a2
--- /dev/null
@@ -0,0 +1,51 @@
+From 7b83299e5b9385943a857d59e15cba270df20d7e Mon Sep 17 00:00:00 2001
+From: Randy Dunlap <rdunlap@infradead.org>
+Date: Wed, 23 Feb 2022 20:46:35 +0100
+Subject: ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Randy Dunlap <rdunlap@infradead.org>
+
+commit 7b83299e5b9385943a857d59e15cba270df20d7e upstream.
+
+early_param() handlers should return 0 on success.
+__setup() handlers should return 1 on success, i.e., the parameter
+has been handled. A return of 0 would cause the "option=value" string
+to be added to init's environment strings, polluting it.
+
+../arch/arm/mm/mmu.c: In function 'test_early_cachepolicy':
+../arch/arm/mm/mmu.c:215:1: error: no return statement in function returning non-void [-Werror=return-type]
+../arch/arm/mm/mmu.c: In function 'test_noalign_setup':
+../arch/arm/mm/mmu.c:221:1: error: no return statement in function returning non-void [-Werror=return-type]
+
+Fixes: b849a60e0903 ("ARM: make cr_alignment read-only #ifndef CONFIG_CPU_CP15")
+Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
+Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru>
+Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+Cc: linux-arm-kernel@lists.infradead.org
+Cc: patches@armlinux.org.uk
+Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/mm/mmu.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/arm/mm/mmu.c
++++ b/arch/arm/mm/mmu.c
+@@ -230,12 +230,14 @@ early_param("ecc", early_ecc);
+ static int __init early_cachepolicy(char *p)
+ {
+       pr_warn("cachepolicy kernel parameter not supported without cp15\n");
++      return 0;
+ }
+ early_param("cachepolicy", early_cachepolicy);
+ static int __init noalign_setup(char *__unused)
+ {
+       pr_warn("noalign kernel parameter not supported without cp15\n");
++      return 1;
+ }
+ __setup("noalign", noalign_setup);
diff --git a/queue-4.19/arm64-dts-rockchip-switch-rk3399-gru-dp-to-spdif-output.patch b/queue-4.19/arm64-dts-rockchip-switch-rk3399-gru-dp-to-spdif-output.patch
new file mode 100644 (file)
index 0000000..8bd1591
--- /dev/null
@@ -0,0 +1,67 @@
+From b5fbaf7d779f5f02b7f75b080e7707222573be2a Mon Sep 17 00:00:00 2001
+From: Brian Norris <briannorris@chromium.org>
+Date: Fri, 14 Jan 2022 15:02:07 -0800
+Subject: arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
+
+From: Brian Norris <briannorris@chromium.org>
+
+commit b5fbaf7d779f5f02b7f75b080e7707222573be2a upstream.
+
+Commit b18c6c3c7768 ("ASoC: rockchip: cdn-dp sound output use spdif")
+switched the platform to SPDIF, but we didn't fix up the device tree.
+
+Drop the pinctrl settings, because the 'spdif_bus' pins are either:
+ * unused (on kevin, bob), so the settings is ~harmless
+ * used by a different function (on scarlet), which causes probe
+   failures (!!)
+
+Fixes: b18c6c3c7768 ("ASoC: rockchip: cdn-dp sound output use spdif")
+Signed-off-by: Brian Norris <briannorris@chromium.org>
+Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
+Link: https://lore.kernel.org/r/20220114150129.v2.1.I46f64b00508d9dff34abe1c3e8d2defdab4ea1e5@changeid
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi |   17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+--- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
+@@ -287,7 +287,7 @@
+       sound: sound {
+               compatible = "rockchip,rk3399-gru-sound";
+-              rockchip,cpu = <&i2s0 &i2s2>;
++              rockchip,cpu = <&i2s0 &spdif>;
+       };
+ };
+@@ -438,10 +438,6 @@ ap_i2c_audio: &i2c8 {
+       status = "okay";
+ };
+-&i2s2 {
+-      status = "okay";
+-};
+-
+ &io_domains {
+       status = "okay";
+@@ -538,6 +534,17 @@ ap_i2c_audio: &i2c8 {
+       vqmmc-supply = <&ppvar_sd_card_io>;
+ };
++&spdif {
++      status = "okay";
++
++      /*
++       * SPDIF is routed internally to DP; we either don't use these pins, or
++       * mux them to something else.
++       */
++      /delete-property/ pinctrl-0;
++      /delete-property/ pinctrl-names;
++};
++
+ &spi1 {
+       status = "okay";
diff --git a/queue-4.19/can-gs_usb-change-active_channels-s-type-from-atomic_t-to-u8.patch b/queue-4.19/can-gs_usb-change-active_channels-s-type-from-atomic_t-to-u8.patch
new file mode 100644 (file)
index 0000000..2f561cf
--- /dev/null
@@ -0,0 +1,79 @@
+From 035b0fcf02707d3c9c2890dc1484b11aa5335eb1 Mon Sep 17 00:00:00 2001
+From: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
+Date: Tue, 15 Feb 2022 08:48:14 +0900
+Subject: can: gs_usb: change active_channels's type from atomic_t to u8
+
+From: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
+
+commit 035b0fcf02707d3c9c2890dc1484b11aa5335eb1 upstream.
+
+The driver uses an atomic_t variable: gs_usb:active_channels to keep
+track of the number of opened channels in order to only allocate
+memory for the URBs when this count changes from zero to one.
+
+However, the driver does not decrement the counter when an error
+occurs in gs_can_open(). This issue is fixed by changing the type from
+atomic_t to u8 and by simplifying the logic accordingly.
+
+It is safe to use an u8 here because the network stack big kernel lock
+(a.k.a. rtnl_mutex) is being hold. For details, please refer to [1].
+
+[1] https://lore.kernel.org/linux-can/CAMZ6Rq+sHpiw34ijPsmp7vbUpDtJwvVtdV7CvRZJsLixjAFfrg@mail.gmail.com/T/#t
+
+Fixes: d08e973a77d1 ("can: gs_usb: Added support for the GS_USB CAN devices")
+Link: https://lore.kernel.org/all/20220214234814.1321599-1-mailhol.vincent@wanadoo.fr
+Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/can/usb/gs_usb.c |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/can/usb/gs_usb.c
++++ b/drivers/net/can/usb/gs_usb.c
+@@ -198,8 +198,8 @@ struct gs_can {
+ struct gs_usb {
+       struct gs_can *canch[GS_MAX_INTF];
+       struct usb_anchor rx_submitted;
+-      atomic_t active_channels;
+       struct usb_device *udev;
++      u8 active_channels;
+ };
+ /* 'allocate' a tx context.
+@@ -596,7 +596,7 @@ static int gs_can_open(struct net_device
+       if (rc)
+               return rc;
+-      if (atomic_add_return(1, &parent->active_channels) == 1) {
++      if (!parent->active_channels) {
+               for (i = 0; i < GS_MAX_RX_URBS; i++) {
+                       struct urb *urb;
+                       u8 *buf;
+@@ -697,6 +697,7 @@ static int gs_can_open(struct net_device
+       dev->can.state = CAN_STATE_ERROR_ACTIVE;
++      parent->active_channels++;
+       if (!(dev->can.ctrlmode & CAN_CTRLMODE_LISTENONLY))
+               netif_start_queue(netdev);
+@@ -712,7 +713,8 @@ static int gs_can_close(struct net_devic
+       netif_stop_queue(netdev);
+       /* Stop polling */
+-      if (atomic_dec_and_test(&parent->active_channels))
++      parent->active_channels--;
++      if (!parent->active_channels)
+               usb_kill_anchored_urbs(&parent->rx_submitted);
+       /* Stop sending URBs */
+@@ -991,8 +993,6 @@ static int gs_usb_probe(struct usb_inter
+       init_usb_anchor(&dev->rx_submitted);
+-      atomic_set(&dev->active_channels, 0);
+-
+       usb_set_intfdata(intf, dev);
+       dev->udev = interface_to_usbdev(intf);
diff --git a/queue-4.19/efivars-respect-block-flag-in-efivar_entry_set_safe.patch b/queue-4.19/efivars-respect-block-flag-in-efivar_entry_set_safe.patch
new file mode 100644 (file)
index 0000000..f413d88
--- /dev/null
@@ -0,0 +1,56 @@
+From 258dd902022cb10c83671176688074879517fd21 Mon Sep 17 00:00:00 2001
+From: Jann Horn <jannh@google.com>
+Date: Fri, 18 Feb 2022 19:05:59 +0100
+Subject: efivars: Respect "block" flag in efivar_entry_set_safe()
+
+From: Jann Horn <jannh@google.com>
+
+commit 258dd902022cb10c83671176688074879517fd21 upstream.
+
+When the "block" flag is false, the old code would sometimes still call
+check_var_size(), which wrongly tells ->query_variable_store() that it can
+block.
+
+As far as I can tell, this can't really materialize as a bug at the moment,
+because ->query_variable_store only does something on X86 with generic EFI,
+and in that configuration we always take the efivar_entry_set_nonblocking()
+path.
+
+Fixes: ca0e30dcaa53 ("efi: Add nonblocking option to efi_query_variable_store()")
+Signed-off-by: Jann Horn <jannh@google.com>
+Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
+Link: https://lore.kernel.org/r/20220218180559.1432559-1-jannh@google.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/firmware/efi/vars.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/drivers/firmware/efi/vars.c
++++ b/drivers/firmware/efi/vars.c
+@@ -763,6 +763,7 @@ int efivar_entry_set_safe(efi_char16_t *
+ {
+       const struct efivar_operations *ops;
+       efi_status_t status;
++      unsigned long varsize;
+       if (!__efivars)
+               return -EINVAL;
+@@ -785,15 +786,17 @@ int efivar_entry_set_safe(efi_char16_t *
+               return efivar_entry_set_nonblocking(name, vendor, attributes,
+                                                   size, data);
++      varsize = size + ucs2_strsize(name, 1024);
+       if (!block) {
+               if (down_trylock(&efivars_lock))
+                       return -EBUSY;
++              status = check_var_size_nonblocking(attributes, varsize);
+       } else {
+               if (down_interruptible(&efivars_lock))
+                       return -EINTR;
++              status = check_var_size(attributes, varsize);
+       }
+-      status = check_var_size(attributes, size + ucs2_strsize(name, 1024));
+       if (status != EFI_SUCCESS) {
+               up(&efivars_lock);
+               return -ENOSPC;
diff --git a/queue-4.19/firmware-arm_scmi-remove-space-in-module_alias-name.patch b/queue-4.19/firmware-arm_scmi-remove-space-in-module_alias-name.patch
new file mode 100644 (file)
index 0000000..af268fc
--- /dev/null
@@ -0,0 +1,32 @@
+From 1ba603f56568c3b4c2542dfba07afa25f21dcff3 Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Fri, 11 Feb 2022 10:27:04 +0000
+Subject: firmware: arm_scmi: Remove space in MODULE_ALIAS name
+
+From: Alyssa Ross <hi@alyssa.is>
+
+commit 1ba603f56568c3b4c2542dfba07afa25f21dcff3 upstream.
+
+modprobe can't handle spaces in aliases. Get rid of it to fix the issue.
+
+Link: https://lore.kernel.org/r/20220211102704.128354-1-sudeep.holla@arm.com
+Fixes: aa4f886f3893 ("firmware: arm_scmi: add basic driver infrastructure for SCMI")
+Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
+Signed-off-by: Alyssa Ross <hi@alyssa.is>
+Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/firmware/arm_scmi/driver.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/firmware/arm_scmi/driver.c
++++ b/drivers/firmware/arm_scmi/driver.c
+@@ -873,7 +873,7 @@ static struct platform_driver scmi_drive
+ module_platform_driver(scmi_driver);
+-MODULE_ALIAS("platform: arm-scmi");
++MODULE_ALIAS("platform:arm-scmi");
+ MODULE_AUTHOR("Sudeep Holla <sudeep.holla@arm.com>");
+ MODULE_DESCRIPTION("ARM SCMI protocol driver");
+ MODULE_LICENSE("GPL v2");
diff --git a/queue-4.19/ibmvnic-free-reset-work-item-when-flushing.patch b/queue-4.19/ibmvnic-free-reset-work-item-when-flushing.patch
new file mode 100644 (file)
index 0000000..8b87aab
--- /dev/null
@@ -0,0 +1,33 @@
+From 8d0657f39f487d904fca713e0bc39c2707382553 Mon Sep 17 00:00:00 2001
+From: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
+Date: Thu, 24 Feb 2022 22:23:51 -0800
+Subject: ibmvnic: free reset-work-item when flushing
+
+From: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
+
+commit 8d0657f39f487d904fca713e0bc39c2707382553 upstream.
+
+Fix a tiny memory leak when flushing the reset work queue.
+
+Fixes: 2770a7984db5 ("ibmvnic: Introduce hard reset recovery")
+Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/ibm/ibmvnic.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/ibm/ibmvnic.c
++++ b/drivers/net/ethernet/ibm/ibmvnic.c
+@@ -2100,8 +2100,10 @@ static int ibmvnic_reset(struct ibmvnic_
+        * flush reset queue and process this reset
+        */
+       if (adapter->force_reset_recovery && !list_empty(&adapter->rwi_list)) {
+-              list_for_each_safe(entry, tmp_entry, &adapter->rwi_list)
++              list_for_each_safe(entry, tmp_entry, &adapter->rwi_list) {
+                       list_del(entry);
++                      kfree(list_entry(entry, struct ibmvnic_rwi, list));
++              }
+       }
+       rwi->reset_reason = reason;
+       list_add_tail(&rwi->list, &adapter->rwi_list);
diff --git a/queue-4.19/mac80211-fix-forwarded-mesh-frames-ac-queue-selection.patch b/queue-4.19/mac80211-fix-forwarded-mesh-frames-ac-queue-selection.patch
new file mode 100644 (file)
index 0000000..b347b78
--- /dev/null
@@ -0,0 +1,60 @@
+From 859ae7018316daa4adbc496012dcbbb458d7e510 Mon Sep 17 00:00:00 2001
+From: Nicolas Escande <nico.escande@gmail.com>
+Date: Mon, 14 Feb 2022 18:32:14 +0100
+Subject: mac80211: fix forwarded mesh frames AC & queue selection
+
+From: Nicolas Escande <nico.escande@gmail.com>
+
+commit 859ae7018316daa4adbc496012dcbbb458d7e510 upstream.
+
+There are two problems with the current code that have been highlighted
+with the AQL feature that is now enbaled by default.
+
+First problem is in ieee80211_rx_h_mesh_fwding(),
+ieee80211_select_queue_80211() is used on received packets to choose
+the sending AC queue of the forwarding packet although this function
+should only be called on TX packet (it uses ieee80211_tx_info).
+This ends with forwarded mesh packets been sent on unrelated random AC
+queue. To fix that, AC queue can directly be infered from skb->priority
+which has been extracted from QOS info (see ieee80211_parse_qos()).
+
+Second problem is the value of queue_mapping set on forwarded mesh
+frames via skb_set_queue_mapping() is not the AC of the packet but a
+hardware queue index. This may or may not work depending on AC to HW
+queue mapping which is driver specific.
+
+Both of these issues lead to improper AC selection while forwarding
+mesh packets but more importantly due to improper airtime accounting
+(which is done on a per STA, per AC basis) caused traffic stall with
+the introduction of AQL.
+
+Fixes: cf44012810cc ("mac80211: fix unnecessary frame drops in mesh fwding")
+Fixes: d3c1597b8d1b ("mac80211: fix forwarded mesh frame queue mapping")
+Co-developed-by: Remi Pommarel <repk@triplefau.lt>
+Signed-off-by: Remi Pommarel <repk@triplefau.lt>
+Signed-off-by: Nicolas Escande <nico.escande@gmail.com>
+Link: https://lore.kernel.org/r/20220214173214.368862-1-nico.escande@gmail.com
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/mac80211/rx.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -2774,13 +2774,13 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
+           ether_addr_equal(sdata->vif.addr, hdr->addr3))
+               return RX_CONTINUE;
+-      ac = ieee80211_select_queue_80211(sdata, skb, hdr);
++      ac = ieee802_1d_to_ac[skb->priority];
+       q = sdata->vif.hw_queue[ac];
+       if (ieee80211_queue_stopped(&local->hw, q)) {
+               IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_congestion);
+               return RX_DROP_MONITOR;
+       }
+-      skb_set_queue_mapping(skb, q);
++      skb_set_queue_mapping(skb, ac);
+       if (!--mesh_hdr->ttl) {
+               if (!is_multicast_ether_addr(hdr->addr1))
diff --git a/queue-4.19/net-arcnet-com20020-fix-null-ptr-deref-in-com20020pci_probe.patch b/queue-4.19/net-arcnet-com20020-fix-null-ptr-deref-in-com20020pci_probe.patch
new file mode 100644 (file)
index 0000000..63bfc4b
--- /dev/null
@@ -0,0 +1,49 @@
+From bd6f1fd5d33dfe5d1b4f2502d3694a7cc13f166d Mon Sep 17 00:00:00 2001
+From: Zheyu Ma <zheyuma97@gmail.com>
+Date: Wed, 2 Mar 2022 20:24:23 +0800
+Subject: net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
+
+From: Zheyu Ma <zheyuma97@gmail.com>
+
+commit bd6f1fd5d33dfe5d1b4f2502d3694a7cc13f166d upstream.
+
+During driver initialization, the pointer of card info, i.e. the
+variable 'ci' is required. However, the definition of
+'com20020pci_id_table' reveals that this field is empty for some
+devices, which will cause null pointer dereference when initializing
+these devices.
+
+The following log reveals it:
+
+[    3.973806] KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f]
+[    3.973819] RIP: 0010:com20020pci_probe+0x18d/0x13e0 [com20020_pci]
+[    3.975181] Call Trace:
+[    3.976208]  local_pci_probe+0x13f/0x210
+[    3.977248]  pci_device_probe+0x34c/0x6d0
+[    3.977255]  ? pci_uevent+0x470/0x470
+[    3.978265]  really_probe+0x24c/0x8d0
+[    3.978273]  __driver_probe_device+0x1b3/0x280
+[    3.979288]  driver_probe_device+0x50/0x370
+
+Fix this by checking whether the 'ci' is a null pointer first.
+
+Fixes: 8c14f9c70327 ("ARCNET: add com20020 PCI IDs with metadata")
+Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/arcnet/com20020-pci.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/net/arcnet/com20020-pci.c
++++ b/drivers/net/arcnet/com20020-pci.c
+@@ -136,6 +136,9 @@ static int com20020pci_probe(struct pci_
+               return -ENOMEM;
+       ci = (struct com20020_pci_card_info *)id->driver_data;
++      if (!ci)
++              return -EINVAL;
++
+       priv->ci = ci;
+       mm = &ci->misc_map;
diff --git a/queue-4.19/net-stmmac-fix-return-value-of-__setup-handler.patch b/queue-4.19/net-stmmac-fix-return-value-of-__setup-handler.patch
new file mode 100644 (file)
index 0000000..98acefc
--- /dev/null
@@ -0,0 +1,53 @@
+From e01b042e580f1fbf4fd8da467442451da00c7a90 Mon Sep 17 00:00:00 2001
+From: Randy Dunlap <rdunlap@infradead.org>
+Date: Wed, 23 Feb 2022 19:35:36 -0800
+Subject: net: stmmac: fix return value of __setup handler
+
+From: Randy Dunlap <rdunlap@infradead.org>
+
+commit e01b042e580f1fbf4fd8da467442451da00c7a90 upstream.
+
+__setup() handlers should return 1 on success, i.e., the parameter
+has been handled. A return of 0 causes the "option=value" string to be
+added to init's environment strings, polluting it.
+
+Fixes: 47dd7a540b8a ("net: add support for STMicroelectronics Ethernet controllers.")
+Fixes: f3240e2811f0 ("stmmac: remove warning when compile as built-in (V2)")
+Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
+Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru>
+Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru
+Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
+Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
+Cc: Jose Abreu <joabreu@synopsys.com>
+Link: https://lore.kernel.org/r/20220224033536.25056-1-rdunlap@infradead.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+@@ -4628,7 +4628,7 @@ static int __init stmmac_cmdline_opt(cha
+       char *opt;
+       if (!str || !*str)
+-              return -EINVAL;
++              return 1;
+       while ((opt = strsep(&str, ",")) != NULL) {
+               if (!strncmp(opt, "debug:", 6)) {
+                       if (kstrtoint(opt + 6, 0, &debug))
+@@ -4659,11 +4659,11 @@ static int __init stmmac_cmdline_opt(cha
+                               goto err;
+               }
+       }
+-      return 0;
++      return 1;
+ err:
+       pr_err("%s: ERROR broken module parameter conversion", __func__);
+-      return -EINVAL;
++      return 1;
+ }
+ __setup("stmmaceth=", stmmac_cmdline_opt);
diff --git a/queue-4.19/net-sxgbe-fix-return-value-of-__setup-handler.patch b/queue-4.19/net-sxgbe-fix-return-value-of-__setup-handler.patch
new file mode 100644 (file)
index 0000000..85710d3
--- /dev/null
@@ -0,0 +1,52 @@
+From 50e06ddceeea263f57fe92baa677c638ecd65bb6 Mon Sep 17 00:00:00 2001
+From: Randy Dunlap <rdunlap@infradead.org>
+Date: Wed, 23 Feb 2022 19:35:28 -0800
+Subject: net: sxgbe: fix return value of __setup handler
+
+From: Randy Dunlap <rdunlap@infradead.org>
+
+commit 50e06ddceeea263f57fe92baa677c638ecd65bb6 upstream.
+
+__setup() handlers should return 1 on success, i.e., the parameter
+has been handled. A return of 0 causes the "option=value" string to be
+added to init's environment strings, polluting it.
+
+Fixes: acc18c147b22 ("net: sxgbe: add EEE(Energy Efficient Ethernet) for Samsung sxgbe")
+Fixes: 1edb9ca69e8a ("net: sxgbe: add basic framework for Samsung 10Gb ethernet driver")
+Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
+Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru>
+Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru
+Cc: Siva Reddy <siva.kallam@samsung.com>
+Cc: Girish K S <ks.giri@samsung.com>
+Cc: Byungho An <bh74.an@samsung.com>
+Link: https://lore.kernel.org/r/20220224033528.24640-1-rdunlap@infradead.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
++++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
+@@ -2280,18 +2280,18 @@ static int __init sxgbe_cmdline_opt(char
+       char *opt;
+       if (!str || !*str)
+-              return -EINVAL;
++              return 1;
+       while ((opt = strsep(&str, ",")) != NULL) {
+               if (!strncmp(opt, "eee_timer:", 10)) {
+                       if (kstrtoint(opt + 10, 0, &eee_timer))
+                               goto err;
+               }
+       }
+-      return 0;
++      return 1;
+ err:
+       pr_err("%s: ERROR broken module parameter conversion\n", __func__);
+-      return -EINVAL;
++      return 1;
+ }
+ __setup("sxgbeeth=", sxgbe_cmdline_opt);
index cb8f0ac8d7f5a007bd437b0b72cc11f56c582e7a..8145773b6589d253cd610f5c54984b014b1ff72c 100644 (file)
@@ -29,3 +29,13 @@ net-smc-fix-unexpected-smc_clc_decl_err_regrmb-error-cause-by-server.patch
 block-fix-fsync-always-failed-if-once-failed.patch
 pci-pciehp-fix-infinite-loop-in-irq-handler-upon-power-fault.patch
 xen-netfront-destroy-queues-before-real_num_tx_queues-is-zeroed.patch
+mac80211-fix-forwarded-mesh-frames-ac-queue-selection.patch
+net-stmmac-fix-return-value-of-__setup-handler.patch
+net-sxgbe-fix-return-value-of-__setup-handler.patch
+net-arcnet-com20020-fix-null-ptr-deref-in-com20020pci_probe.patch
+efivars-respect-block-flag-in-efivar_entry_set_safe.patch
+firmware-arm_scmi-remove-space-in-module_alias-name.patch
+can-gs_usb-change-active_channels-s-type-from-atomic_t-to-u8.patch
+arm64-dts-rockchip-switch-rk3399-gru-dp-to-spdif-output.patch
+arm-9182-1-mmu-fix-returns-from-early_param-and-__setup-functions.patch
+ibmvnic-free-reset-work-item-when-flushing.patch