From 3abf36757f445b58dd8d92ded5c97d6fc0173d13 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 19 Dec 2022 11:19:05 +0100 Subject: [PATCH] 5.15-stable patches added patches: asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch net-fec-properly-guard-irq-coalesce-setup.patch --- ...ck-for-second-channel-on-sx-controls.patch | 45 +++++++++++++++++++ ...ec-properly-guard-irq-coalesce-setup.patch | 41 +++++++++++++++++ queue-5.15/series | 2 + 3 files changed, 88 insertions(+) create mode 100644 queue-5.15/asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch create mode 100644 queue-5.15/net-fec-properly-guard-irq-coalesce-setup.patch 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 index 00000000000..403d6d13e8e --- /dev/null +++ b/queue-5.15/asoc-ops-correct-bounds-check-for-second-channel-on-sx-controls.patch @@ -0,0 +1,45 @@ +From f33bcc506050f89433a52a3052054d4ebd37b1c1 Mon Sep 17 00:00:00 2001 +From: Charles Keepax +Date: Fri, 25 Nov 2022 16:23:47 +0000 +Subject: ASoC: ops: Correct bounds check for second channel on SX controls + +From: Charles Keepax + +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 +Link: https://lore.kernel.org/r/20221125162348.1288005-1-ckeepax@opensource.cirrus.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + 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 index 00000000000..8ea70861cb5 --- /dev/null +++ b/queue-5.15/net-fec-properly-guard-irq-coalesce-setup.patch @@ -0,0 +1,41 @@ +From 7e6303567ce3ca506e4a2704e4baa86f1d8bde02 Mon Sep 17 00:00:00 2001 +From: Rasmus Villemoes +Date: Mon, 5 Dec 2022 21:46:04 +0100 +Subject: net: fec: properly guard irq coalesce setup + +From: Rasmus Villemoes + +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 +Signed-off-by: Rasmus Villemoes +Reviewed-by: Florian Fainelli +Link: https://lore.kernel.org/r/20221205204604.869853-1-linux@rasmusvillemoes.dk +Signed-off-by: Jakub Kicinski +Signed-off-by: Greg Kroah-Hartman +--- + 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) diff --git a/queue-5.15/series b/queue-5.15/series index d8fc01ad18e..c93ea02b939 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -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 -- 2.47.3