From: Sasha Levin Date: Sun, 12 Feb 2023 19:48:36 +0000 (-0500) Subject: Fixes for 4.19 X-Git-Tag: v6.1.12~32 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b3669aa9c7d9ce61de22bc2219f6b3743f901d9;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 4.19 Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/alsa-pci-lx6464es-fix-a-debug-loop.patch b/queue-4.19/alsa-pci-lx6464es-fix-a-debug-loop.patch new file mode 100644 index 00000000000..13c4e59afd4 --- /dev/null +++ b/queue-4.19/alsa-pci-lx6464es-fix-a-debug-loop.patch @@ -0,0 +1,52 @@ +From 8fe3681f7b1888c44ee6f25cfd8e3794e05cbe5e Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 31 Jan 2023 13:02:13 +0300 +Subject: ALSA: pci: lx6464es: fix a debug loop + +From: Dan Carpenter + +[ Upstream commit 5dac9f8dc25fefd9d928b98f6477ff3daefd73e3 ] + +This loop accidentally reuses the "i" iterator for both the inside and +the outside loop. The value of MAX_STREAM_BUFFER is 5. I believe that +chip->rmh.stat_len is in the 2-12 range. If the value of .stat_len is +4 or more then it will loop exactly one time, but if it's less then it +is a forever loop. + +It looks like it was supposed to combined into one loop where +conditions are checked. + +Fixes: 8e6320064c33 ("ALSA: lx_core: Remove useless #if 0 .. #endif") +Signed-off-by: Dan Carpenter +Link: https://lore.kernel.org/r/Y9jnJTis/mRFJAQp@kili +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/pci/lx6464es/lx_core.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/sound/pci/lx6464es/lx_core.c b/sound/pci/lx6464es/lx_core.c +index a80684bdc30d6..46f5362096710 100644 +--- a/sound/pci/lx6464es/lx_core.c ++++ b/sound/pci/lx6464es/lx_core.c +@@ -508,12 +508,11 @@ int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture, + dev_dbg(chip->card->dev, + "CMD_08_ASK_BUFFERS: needed %d, freed %d\n", + *r_needed, *r_freed); +- for (i = 0; i < MAX_STREAM_BUFFER; ++i) { +- for (i = 0; i != chip->rmh.stat_len; ++i) +- dev_dbg(chip->card->dev, +- " stat[%d]: %x, %x\n", i, +- chip->rmh.stat[i], +- chip->rmh.stat[i] & MASK_DATA_SIZE); ++ for (i = 0; i < MAX_STREAM_BUFFER && i < chip->rmh.stat_len; ++ ++i) { ++ dev_dbg(chip->card->dev, " stat[%d]: %x, %x\n", i, ++ chip->rmh.stat[i], ++ chip->rmh.stat[i] & MASK_DATA_SIZE); + } + } + +-- +2.39.0 + diff --git a/queue-4.19/ib-hfi1-restore-allocated-resources-on-failed-copyou.patch b/queue-4.19/ib-hfi1-restore-allocated-resources-on-failed-copyou.patch new file mode 100644 index 00000000000..66d4725a12d --- /dev/null +++ b/queue-4.19/ib-hfi1-restore-allocated-resources-on-failed-copyou.patch @@ -0,0 +1,46 @@ +From 00023d62ccca2c0b9d77d23efc7850f8fad84ae9 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 12 Jan 2023 13:16:02 -0500 +Subject: IB/hfi1: Restore allocated resources on failed copyout + +From: Dean Luick + +[ Upstream commit 6601fc0d15ffc20654e39486f9bef35567106d68 ] + +Fix a resource leak if an error occurs. + +Fixes: f404ca4c7ea8 ("IB/hfi1: Refactor hfi_user_exp_rcv_setup() IOCTL") +Signed-off-by: Dean Luick +Signed-off-by: Dennis Dalessandro +Link: https://lore.kernel.org/r/167354736291.2132367.10894218740150168180.stgit@awfm-02.cornelisnetworks.com +Signed-off-by: Leon Romanovsky +Signed-off-by: Sasha Levin +--- + drivers/infiniband/hw/hfi1/file_ops.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/hw/hfi1/file_ops.c b/drivers/infiniband/hw/hfi1/file_ops.c +index be31faf6cc620..071d39c614b21 100644 +--- a/drivers/infiniband/hw/hfi1/file_ops.c ++++ b/drivers/infiniband/hw/hfi1/file_ops.c +@@ -1361,12 +1361,15 @@ static int user_exp_rcv_setup(struct hfi1_filedata *fd, unsigned long arg, + addr = arg + offsetof(struct hfi1_tid_info, tidcnt); + if (copy_to_user((void __user *)addr, &tinfo.tidcnt, + sizeof(tinfo.tidcnt))) +- return -EFAULT; ++ ret = -EFAULT; + + addr = arg + offsetof(struct hfi1_tid_info, length); +- if (copy_to_user((void __user *)addr, &tinfo.length, ++ if (!ret && copy_to_user((void __user *)addr, &tinfo.length, + sizeof(tinfo.length))) + ret = -EFAULT; ++ ++ if (ret) ++ hfi1_user_exp_rcv_invalid(fd, &tinfo); + } + + return ret; +-- +2.39.0 + diff --git a/queue-4.19/net-phy-add-macros-for-phyid-matching.patch b/queue-4.19/net-phy-add-macros-for-phyid-matching.patch new file mode 100644 index 00000000000..c0aa3e9c2e5 --- /dev/null +++ b/queue-4.19/net-phy-add-macros-for-phyid-matching.patch @@ -0,0 +1,38 @@ +From 092f6d59fbb3dcd5e198569d050775d5ee9a1dc0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 10 Nov 2018 00:39:14 +0100 +Subject: net: phy: add macros for PHYID matching + +From: Heiner Kallweit + +[ Upstream commit aa2af2eb447c9a21c8c9e8d2336672bb620cf900 ] + +Add macros for PHYID matching to be used in PHY driver configs. +By using these macros some boilerplate code can be avoided. + +Signed-off-by: Heiner Kallweit +Signed-off-by: David S. Miller +Stable-dep-of: 69ff53e4a4c9 ("net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY") +Signed-off-by: Sasha Levin +--- + include/linux/phy.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/include/linux/phy.h b/include/linux/phy.h +index 42766e7179d38..86a3792c568c2 100644 +--- a/include/linux/phy.h ++++ b/include/linux/phy.h +@@ -667,6 +667,10 @@ struct phy_driver { + #define PHY_ANY_ID "MATCH ANY PHY" + #define PHY_ANY_UID 0xffffffff + ++#define PHY_ID_MATCH_EXACT(id) .phy_id = (id), .phy_id_mask = GENMASK(31, 0) ++#define PHY_ID_MATCH_MODEL(id) .phy_id = (id), .phy_id_mask = GENMASK(31, 4) ++#define PHY_ID_MATCH_VENDOR(id) .phy_id = (id), .phy_id_mask = GENMASK(31, 10) ++ + /* A Structure for boards to register fixups with the PHY Lib */ + struct phy_fixup { + struct list_head list; +-- +2.39.0 + diff --git a/queue-4.19/net-phy-meson-gxl-add-g12a-support.patch b/queue-4.19/net-phy-meson-gxl-add-g12a-support.patch new file mode 100644 index 00000000000..2da5992364b --- /dev/null +++ b/queue-4.19/net-phy-meson-gxl-add-g12a-support.patch @@ -0,0 +1,52 @@ +From 9557a3c6eaf9edf3466c15a88f59ecfcabbe553a Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 4 Apr 2019 15:11:46 +0200 +Subject: net: phy: meson-gxl: add g12a support + +From: Jerome Brunet + +[ Upstream commit 5c3407abb3382fb0621a503662d00495f7ab65c4 ] + +The g12a SoC family uses the type of internal PHY that was used on the +gxl family. The quirks of gxl family, like the LPA register corruption, +appear to have been resolved on this new SoC generation. + +Signed-off-by: Jerome Brunet +Reviewed-by: Florian Fainelli +Signed-off-by: David S. Miller +Stable-dep-of: 69ff53e4a4c9 ("net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY") +Signed-off-by: Sasha Levin +--- + drivers/net/phy/meson-gxl.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c +index 7ceebbc4bcc21..e061dfa34ae0d 100644 +--- a/drivers/net/phy/meson-gxl.c ++++ b/drivers/net/phy/meson-gxl.c +@@ -246,11 +246,22 @@ static struct phy_driver meson_gxl_phy[] = { + .config_intr = meson_gxl_config_intr, + .suspend = genphy_suspend, + .resume = genphy_resume, ++ }, { ++ PHY_ID_MATCH_EXACT(0x01803301), ++ .name = "Meson G12A Internal PHY", ++ .features = PHY_BASIC_FEATURES, ++ .flags = PHY_IS_INTERNAL, ++ .soft_reset = genphy_soft_reset, ++ .ack_interrupt = meson_gxl_ack_interrupt, ++ .config_intr = meson_gxl_config_intr, ++ .suspend = genphy_suspend, ++ .resume = genphy_resume, + }, + }; + + static struct mdio_device_id __maybe_unused meson_gxl_tbl[] = { + { 0x01814400, 0xfffffff0 }, ++ { PHY_ID_MATCH_VENDOR(0x01803301) }, + { } + }; + +-- +2.39.0 + diff --git a/queue-4.19/net-phy-meson-gxl-use-mmd-access-dummy-stubs-for-gxl.patch b/queue-4.19/net-phy-meson-gxl-use-mmd-access-dummy-stubs-for-gxl.patch new file mode 100644 index 00000000000..33253772c76 --- /dev/null +++ b/queue-4.19/net-phy-meson-gxl-use-mmd-access-dummy-stubs-for-gxl.patch @@ -0,0 +1,40 @@ +From 7331c21746ffc0b6b0d78348be6ca8e8ab62e53e Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 2 Feb 2023 21:45:36 +0100 +Subject: net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY + +From: Heiner Kallweit + +[ Upstream commit 69ff53e4a4c9498eeed7d1441f68a1481dc69251 ] + +Jerome provided the information that also the GXL internal PHY doesn't +support MMD register access and EEE. MMD reads return 0xffff, what +results in e.g. completely wrong ethtool --show-eee output. +Therefore use the MMD dummy stubs. + +Fixes: d853d145ea3e ("net: phy: add an option to disable EEE advertisement") +Suggested-by: Jerome Brunet +Signed-off-by: Heiner Kallweit +Link: https://lore.kernel.org/r/84432fe4-0be4-bc82-4e5c-557206b40f56@gmail.com +Signed-off-by: Jakub Kicinski +Signed-off-by: Sasha Levin +--- + drivers/net/phy/meson-gxl.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c +index e061dfa34ae0d..b6436e7dabbc6 100644 +--- a/drivers/net/phy/meson-gxl.c ++++ b/drivers/net/phy/meson-gxl.c +@@ -246,6 +246,8 @@ static struct phy_driver meson_gxl_phy[] = { + .config_intr = meson_gxl_config_intr, + .suspend = genphy_suspend, + .resume = genphy_resume, ++ .read_mmd = genphy_read_mmd_unsupported, ++ .write_mmd = genphy_write_mmd_unsupported, + }, { + PHY_ID_MATCH_EXACT(0x01803301), + .name = "Meson G12A Internal PHY", +-- +2.39.0 + diff --git a/queue-4.19/rds-rds_rm_zerocopy_callback-use-list_first_entry.patch b/queue-4.19/rds-rds_rm_zerocopy_callback-use-list_first_entry.patch new file mode 100644 index 00000000000..91bf34150fe --- /dev/null +++ b/queue-4.19/rds-rds_rm_zerocopy_callback-use-list_first_entry.patch @@ -0,0 +1,44 @@ +From d5ff352199909563879de3ea3edab799ce77cf6c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 7 Feb 2023 18:26:34 +0000 +Subject: rds: rds_rm_zerocopy_callback() use list_first_entry() + +From: Pietro Borrello + +[ Upstream commit f753a68980cf4b59a80fe677619da2b1804f526d ] + +rds_rm_zerocopy_callback() uses list_entry() on the head of a list +causing a type confusion. +Use list_first_entry() to actually access the first element of the +rs_zcookie_queue list. + +Fixes: 9426bbc6de99 ("rds: use list structure to track information for zerocopy completion notification") +Reviewed-by: Willem de Bruijn +Signed-off-by: Pietro Borrello +Link: https://lore.kernel.org/r/20230202-rds-zerocopy-v3-1-83b0df974f9a@diag.uniroma1.it +Signed-off-by: Paolo Abeni +Signed-off-by: Sasha Levin +--- + net/rds/message.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/net/rds/message.c b/net/rds/message.c +index 4b00b1152a5f0..309b54cc62ae3 100644 +--- a/net/rds/message.c ++++ b/net/rds/message.c +@@ -104,9 +104,9 @@ static void rds_rm_zerocopy_callback(struct rds_sock *rs, + spin_lock_irqsave(&q->lock, flags); + head = &q->zcookie_head; + if (!list_empty(head)) { +- info = list_entry(head, struct rds_msg_zcopy_info, +- rs_zcookie_next); +- if (info && rds_zcookie_add(info, cookie)) { ++ info = list_first_entry(head, struct rds_msg_zcopy_info, ++ rs_zcookie_next); ++ if (rds_zcookie_add(info, cookie)) { + spin_unlock_irqrestore(&q->lock, flags); + kfree(rds_info_from_znotifier(znotif)); + /* caller invokes rds_wake_sk_sleep() */ +-- +2.39.0 + diff --git a/queue-4.19/selftests-forwarding-lib-quote-the-sysctl-values.patch b/queue-4.19/selftests-forwarding-lib-quote-the-sysctl-values.patch new file mode 100644 index 00000000000..1ecf47675a0 --- /dev/null +++ b/queue-4.19/selftests-forwarding-lib-quote-the-sysctl-values.patch @@ -0,0 +1,46 @@ +From c50edecf9486809f261f2752906554ca14916b39 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 8 Feb 2023 11:21:10 +0800 +Subject: selftests: forwarding: lib: quote the sysctl values + +From: Hangbin Liu + +[ Upstream commit 3a082086aa200852545cf15159213582c0c80eba ] + +When set/restore sysctl value, we should quote the value as some keys +may have multi values, e.g. net.ipv4.ping_group_range + +Fixes: f5ae57784ba8 ("selftests: forwarding: lib: Add sysctl_set(), sysctl_restore()") +Signed-off-by: Hangbin Liu +Reviewed-by: Petr Machata +Link: https://lore.kernel.org/r/20230208032110.879205-1-liuhangbin@gmail.com +Signed-off-by: Paolo Abeni +Signed-off-by: Sasha Levin +--- + tools/testing/selftests/net/forwarding/lib.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh +index ee03552b41167..7ead9d2aa6b8a 100644 +--- a/tools/testing/selftests/net/forwarding/lib.sh ++++ b/tools/testing/selftests/net/forwarding/lib.sh +@@ -519,14 +519,14 @@ sysctl_set() + local value=$1; shift + + SYSCTL_ORIG[$key]=$(sysctl -n $key) +- sysctl -qw $key=$value ++ sysctl -qw $key="$value" + } + + sysctl_restore() + { + local key=$1; shift + +- sysctl -qw $key=${SYSCTL_ORIG["$key"]} ++ sysctl -qw $key="${SYSCTL_ORIG[$key]}" + } + + forwarding_enable() +-- +2.39.0 + diff --git a/queue-4.19/series b/queue-4.19/series index 1c6ef8142c6..228e4cf23e3 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -42,3 +42,10 @@ thermal-intel-int340x-add-locking-to-int340x_thermal_get_trip_type.patch iio-adc-twl6030-enable-measurement-of-vac.patch btrfs-limit-device-extents-to-the-device-size.patch alsa-emux-avoid-potential-array-out-of-bound-in-snd_emux_xg_control.patch +ib-hfi1-restore-allocated-resources-on-failed-copyou.patch +net-phy-add-macros-for-phyid-matching.patch +net-phy-meson-gxl-add-g12a-support.patch +net-phy-meson-gxl-use-mmd-access-dummy-stubs-for-gxl.patch +rds-rds_rm_zerocopy_callback-use-list_first_entry.patch +selftests-forwarding-lib-quote-the-sysctl-values.patch +alsa-pci-lx6464es-fix-a-debug-loop.patch