]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Dec 2022 10:19:05 +0000 (11:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Dec 2022 10:19:05 +0000 (11:19 +0100)
added patches:
asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch
net-fec-properly-guard-irq-coalesce-setup.patch

queue-5.15/asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch [new file with mode: 0644]
queue-5.15/net-fec-properly-guard-irq-coalesce-setup.patch [new file with mode: 0644]
queue-5.15/series

diff --git a/queue-5.15/asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch b/queue-5.15/asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch
new file mode 100644 (file)
index 0000000..403d6d1
--- /dev/null
@@ -0,0 +1,45 @@
+From f33bcc506050f89433a52a3052054d4ebd37b1c1 Mon Sep 17 00:00:00 2001
+From: Charles Keepax <ckeepax@opensource.cirrus.com>
+Date: Fri, 25 Nov 2022 16:23:47 +0000
+Subject: ASoC: ops: Correct bounds check for second channel on SX controls
+
+From: Charles Keepax <ckeepax@opensource.cirrus.com>
+
+commit f33bcc506050f89433a52a3052054d4ebd37b1c1 upstream.
+
+Currently the check against the max value for the control is being
+applied after the value has had the minimum applied and been masked. But
+the max value simply indicates the number of volume levels on an SX
+control, and as such should just be applied on the raw value.
+
+Fixes: 97eea946b939 ("ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()")
+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20221125162348.1288005-1-ckeepax@opensource.cirrus.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/soc-ops.c |    7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+--- a/sound/soc/soc-ops.c
++++ b/sound/soc/soc-ops.c
+@@ -447,16 +447,15 @@ int snd_soc_put_volsw_sx(struct snd_kcon
+       ret = err;
+       if (snd_soc_volsw_is_stereo(mc)) {
+-              unsigned int val2;
+-
+-              val_mask = mask << rshift;
+-              val2 = (ucontrol->value.integer.value[1] + min) & mask;
++              unsigned int val2 = ucontrol->value.integer.value[1];
+               if (mc->platform_max && val2 > mc->platform_max)
+                       return -EINVAL;
+               if (val2 > max)
+                       return -EINVAL;
++              val_mask = mask << rshift;
++              val2 = (val2 + min) & mask;
+               val2 = val2 << rshift;
+               err = snd_soc_component_update_bits(component, reg2, val_mask,
diff --git a/queue-5.15/net-fec-properly-guard-irq-coalesce-setup.patch b/queue-5.15/net-fec-properly-guard-irq-coalesce-setup.patch
new file mode 100644 (file)
index 0000000..8ea7086
--- /dev/null
@@ -0,0 +1,41 @@
+From 7e6303567ce3ca506e4a2704e4baa86f1d8bde02 Mon Sep 17 00:00:00 2001
+From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
+Date: Mon, 5 Dec 2022 21:46:04 +0100
+Subject: net: fec: properly guard irq coalesce setup
+
+From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
+
+commit 7e6303567ce3ca506e4a2704e4baa86f1d8bde02 upstream.
+
+Prior to the Fixes: commit, the initialization code went through the
+same fec_enet_set_coalesce() function as used by ethtool, and that
+function correctly checks whether the current variant has support for
+irq coalescing.
+
+Now that the initialization code instead calls fec_enet_itr_coal_set()
+directly, that call needs to be guarded by a check for the
+FEC_QUIRK_HAS_COALESCE bit.
+
+Fixes: df727d4547de (net: fec: don't reset irq coalesce settings to defaults on "ip link up")
+Reported-by: Greg Ungerer <gregungerer@westnet.com.au>
+Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Link: https://lore.kernel.org/r/20221205204604.869853-1-linux@rasmusvillemoes.dk
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/freescale/fec_main.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/freescale/fec_main.c
++++ b/drivers/net/ethernet/freescale/fec_main.c
+@@ -1163,7 +1163,8 @@ fec_restart(struct net_device *ndev)
+               writel(0, fep->hwp + FEC_IMASK);
+       /* Init the interrupt coalescing */
+-      fec_enet_itr_coal_set(ndev);
++      if (fep->quirks & FEC_QUIRK_HAS_COALESCE)
++              fec_enet_itr_coal_set(ndev);
+ }
+ static void fec_enet_stop_mode(struct fec_enet_private *fep, bool enabled)
index d8fc01ad18e907e1bd26607bf926bf949f851426..c93ea02b9397cff999e5d3858c37d8cb239671b7 100644 (file)
@@ -12,3 +12,5 @@ net-fec-don-t-reset-irq-coalesce-settings-to-default.patch
 asoc-cs42l51-correct-pga-volume-minimum-value.patch
 perf-fix-perf_pending_task-uaf.patch
 nvme-pci-clear-the-prp2-field-when-not-used.patch
+asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch
+net-fec-properly-guard-irq-coalesce-setup.patch