]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jul 2023 10:26:12 +0000 (12:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jul 2023 10:26:12 +0000 (12:26 +0200)
added patches:
arm-orion5x-fix-d2net-gpio-initialization.patch
asoc-mediatek-mt8173-fix-irq-error-path.patch
asoc-mediatek-mt8173-fix-snd_soc_component_initialize-error-path.patch
btrfs-add-handling-for-raid1c23-dup-to-btrfs_reduce_alloc_profile.patch
btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
leds-trigger-netdev-recheck-netdev_led_mode_linkup-on-dev-rename.patch

queue-5.10/arm-orion5x-fix-d2net-gpio-initialization.patch [new file with mode: 0644]
queue-5.10/asoc-mediatek-mt8173-fix-irq-error-path.patch [new file with mode: 0644]
queue-5.10/asoc-mediatek-mt8173-fix-snd_soc_component_initialize-error-path.patch [new file with mode: 0644]
queue-5.10/btrfs-add-handling-for-raid1c23-dup-to-btrfs_reduce_alloc_profile.patch [new file with mode: 0644]
queue-5.10/btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch [new file with mode: 0644]
queue-5.10/leds-trigger-netdev-recheck-netdev_led_mode_linkup-on-dev-rename.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/arm-orion5x-fix-d2net-gpio-initialization.patch b/queue-5.10/arm-orion5x-fix-d2net-gpio-initialization.patch
new file mode 100644 (file)
index 0000000..f0266df
--- /dev/null
@@ -0,0 +1,55 @@
+From f8ef1233939495c405a9faa4bd1ae7d3f581bae4 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Tue, 16 May 2023 17:31:05 +0200
+Subject: ARM: orion5x: fix d2net gpio initialization
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit f8ef1233939495c405a9faa4bd1ae7d3f581bae4 upstream.
+
+The DT version of this board has a custom file with the gpio
+device. However, it does nothing because the d2net_init()
+has no caller or prototype:
+
+arch/arm/mach-orion5x/board-d2net.c:101:13: error: no previous prototype for 'd2net_init'
+
+Call it from the board-dt file as intended.
+
+Fixes: 94b0bd366e36 ("ARM: orion5x: convert d2net to Device Tree")
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Cc: stable@vger.kernel.org
+Link: https://lore.kernel.org/r/20230516153109.514251-10-arnd@kernel.org
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/mach-orion5x/board-dt.c |    3 +++
+ arch/arm/mach-orion5x/common.h   |    6 ++++++
+ 2 files changed, 9 insertions(+)
+
+--- a/arch/arm/mach-orion5x/board-dt.c
++++ b/arch/arm/mach-orion5x/board-dt.c
+@@ -63,6 +63,9 @@ static void __init orion5x_dt_init(void)
+       if (of_machine_is_compatible("maxtor,shared-storage-2"))
+               mss2_init();
++      if (of_machine_is_compatible("lacie,d2-network"))
++              d2net_init();
++
+       of_platform_default_populate(NULL, orion5x_auxdata_lookup, NULL);
+ }
+--- a/arch/arm/mach-orion5x/common.h
++++ b/arch/arm/mach-orion5x/common.h
+@@ -75,6 +75,12 @@ extern void mss2_init(void);
+ static inline void mss2_init(void) {}
+ #endif
++#ifdef CONFIG_MACH_D2NET_DT
++void d2net_init(void);
++#else
++static inline void d2net_init(void) {}
++#endif
++
+ /*****************************************************************************
+  * Helpers to access Orion registers
+  ****************************************************************************/
diff --git a/queue-5.10/asoc-mediatek-mt8173-fix-irq-error-path.patch b/queue-5.10/asoc-mediatek-mt8173-fix-irq-error-path.patch
new file mode 100644 (file)
index 0000000..30b4bbc
--- /dev/null
@@ -0,0 +1,53 @@
+From f9c058d14f4fe23ef523a7ff73734d51c151683c Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ribalda@chromium.org>
+Date: Mon, 12 Jun 2023 11:05:32 +0200
+Subject: ASoC: mediatek: mt8173: Fix irq error path
+
+From: Ricardo Ribalda Delgado <ribalda@chromium.org>
+
+commit f9c058d14f4fe23ef523a7ff73734d51c151683c upstream.
+
+After reordering the irq probe, the error path was not properly done.
+Lets fix it.
+
+Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
+Cc: stable@kernel.org
+Fixes: 4cbb264d4e91 ("ASoC: mediatek: mt8173: Enable IRQ when pdata is ready")
+Signed-off-by: Ricardo Ribalda Delgado <ribalda@chromium.org>
+Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+Link: https://lore.kernel.org/r/20230612-mt8173-fixup-v2-2-432aa99ce24d@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/mediatek/mt8173/mt8173-afe-pcm.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
++++ b/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
+@@ -1072,6 +1072,10 @@ static int mt8173_afe_pcm_dev_probe(stru
+       afe->dev = &pdev->dev;
++      irq_id = platform_get_irq(pdev, 0);
++      if (irq_id <= 0)
++              return irq_id < 0 ? irq_id : -ENXIO;
++
+       afe->base_addr = devm_platform_ioremap_resource(pdev, 0);
+       if (IS_ERR(afe->base_addr))
+               return PTR_ERR(afe->base_addr);
+@@ -1177,14 +1181,11 @@ static int mt8173_afe_pcm_dev_probe(stru
+       if (ret)
+               goto err_cleanup_components;
+-      irq_id = platform_get_irq(pdev, 0);
+-      if (irq_id <= 0)
+-              return irq_id < 0 ? irq_id : -ENXIO;
+       ret = devm_request_irq(afe->dev, irq_id, mt8173_afe_irq_handler,
+                              0, "Afe_ISR_Handle", (void *)afe);
+       if (ret) {
+               dev_err(afe->dev, "could not request_irq\n");
+-              goto err_pm_disable;
++              goto err_cleanup_components;
+       }
+       dev_info(&pdev->dev, "MT8173 AFE driver initialized.\n");
diff --git a/queue-5.10/asoc-mediatek-mt8173-fix-snd_soc_component_initialize-error-path.patch b/queue-5.10/asoc-mediatek-mt8173-fix-snd_soc_component_initialize-error-path.patch
new file mode 100644 (file)
index 0000000..1f7b668
--- /dev/null
@@ -0,0 +1,42 @@
+From a46d37012a5be1737393b8f82fd35665e4556eee Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ribalda@chromium.org>
+Date: Mon, 12 Jun 2023 11:05:31 +0200
+Subject: ASoC: mediatek: mt8173: Fix snd_soc_component_initialize error path
+
+From: Ricardo Ribalda Delgado <ribalda@chromium.org>
+
+commit a46d37012a5be1737393b8f82fd35665e4556eee upstream.
+
+If the second component fails to initialize, cleanup the first on.
+
+Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
+Cc: stable@kernel.org
+Fixes: f1b5bf07365d ("ASoC: mt2701/mt8173: replace platform to component")
+Signed-off-by: Ricardo Ribalda Delgado <ribalda@chromium.org>
+Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+Link: https://lore.kernel.org/r/20230612-mt8173-fixup-v2-1-432aa99ce24d@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/mediatek/mt8173/mt8173-afe-pcm.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
++++ b/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
+@@ -1162,14 +1162,14 @@ static int mt8173_afe_pcm_dev_probe(stru
+       comp_hdmi = devm_kzalloc(&pdev->dev, sizeof(*comp_hdmi), GFP_KERNEL);
+       if (!comp_hdmi) {
+               ret = -ENOMEM;
+-              goto err_pm_disable;
++              goto err_cleanup_components;
+       }
+       ret = snd_soc_component_initialize(comp_hdmi,
+                                          &mt8173_afe_hdmi_dai_component,
+                                          &pdev->dev);
+       if (ret)
+-              goto err_pm_disable;
++              goto err_cleanup_components;
+ #ifdef CONFIG_DEBUG_FS
+       comp_hdmi->debugfs_prefix = "hdmi";
diff --git a/queue-5.10/btrfs-add-handling-for-raid1c23-dup-to-btrfs_reduce_alloc_profile.patch b/queue-5.10/btrfs-add-handling-for-raid1c23-dup-to-btrfs_reduce_alloc_profile.patch
new file mode 100644 (file)
index 0000000..0ba8800
--- /dev/null
@@ -0,0 +1,140 @@
+From 160fe8f6fdb13da6111677be6263e5d65e875987 Mon Sep 17 00:00:00 2001
+From: Matt Corallo <blnxfsl@bluematt.me>
+Date: Mon, 5 Jun 2023 16:49:45 -0700
+Subject: btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile
+
+From: Matt Corallo <blnxfsl@bluematt.me>
+
+commit 160fe8f6fdb13da6111677be6263e5d65e875987 upstream.
+
+Callers of `btrfs_reduce_alloc_profile` expect it to return exactly
+one allocation profile flag, and failing to do so may ultimately
+result in a WARN_ON and remount-ro when allocating new blocks, like
+the below transaction abort on 6.1.
+
+`btrfs_reduce_alloc_profile` has two ways of determining the profile,
+first it checks if a conversion balance is currently running and
+uses the profile we're converting to. If no balance is currently
+running, it returns the max-redundancy profile which at least one
+block in the selected block group has.
+
+This works by simply checking each known allocation profile bit in
+redundancy order. However, `btrfs_reduce_alloc_profile` has not been
+updated as new flags have been added - first with the `DUP` profile
+and later with the RAID1C34 profiles.
+
+Because of the way it checks, if we have blocks with different
+profiles and at least one is known, that profile will be selected.
+However, if none are known we may return a flag set with multiple
+allocation profiles set.
+
+This is currently only possible when a balance from one of the three
+unhandled profiles to another of the unhandled profiles is canceled
+after allocating at least one block using the new profile.
+
+In that case, a transaction abort like the below will occur and the
+filesystem will need to be mounted with -o skip_balance to get it
+mounted rw again (but the balance cannot be resumed without a
+similar abort).
+
+  [770.648] ------------[ cut here ]------------
+  [770.648] BTRFS: Transaction aborted (error -22)
+  [770.648] WARNING: CPU: 43 PID: 1159593 at fs/btrfs/extent-tree.c:4122 find_free_extent+0x1d94/0x1e00 [btrfs]
+  [770.648] CPU: 43 PID: 1159593 Comm: btrfs Tainted: G        W 6.1.0-0.deb11.7-powerpc64le #1  Debian 6.1.20-2~bpo11+1a~test
+  [770.648] Hardware name: T2P9D01 REV 1.00 POWER9 0x4e1202 opal:skiboot-bc106a0 PowerNV
+  [770.648] NIP:  c00800000f6784fc LR: c00800000f6784f8 CTR: c000000000d746c0
+  [770.648] REGS: c000200089afe9a0 TRAP: 0700   Tainted: G        W (6.1.0-0.deb11.7-powerpc64le Debian 6.1.20-2~bpo11+1a~test)
+  [770.648] MSR:  9000000002029033 <SF,HV,VEC,EE,ME,IR,DR,RI,LE>  CR: 28848282  XER: 20040000
+  [770.648] CFAR: c000000000135110 IRQMASK: 0
+           GPR00: c00800000f6784f8 c000200089afec40 c00800000f7ea800 0000000000000026
+           GPR04: 00000001004820c2 c000200089afea00 c000200089afe9f8 0000000000000027
+           GPR08: c000200ffbfe7f98 c000000002127f90 ffffffffffffffd8 0000000026d6a6e8
+           GPR12: 0000000028848282 c000200fff7f3800 5deadbeef0000122 c00000002269d000
+           GPR16: c0002008c7797c40 c000200089afef17 0000000000000000 0000000000000000
+           GPR20: 0000000000000000 0000000000000001 c000200008bc5a98 0000000000000001
+           GPR24: 0000000000000000 c0000003c73088d0 c000200089afef17 c000000016d3a800
+           GPR28: c0000003c7308800 c00000002269d000 ffffffffffffffea 0000000000000001
+  [770.648] NIP [c00800000f6784fc] find_free_extent+0x1d94/0x1e00 [btrfs]
+  [770.648] LR [c00800000f6784f8] find_free_extent+0x1d90/0x1e00 [btrfs]
+  [770.648] Call Trace:
+  [770.648] [c000200089afec40] [c00800000f6784f8] find_free_extent+0x1d90/0x1e00 [btrfs] (unreliable)
+  [770.648] [c000200089afed30] [c00800000f681398] btrfs_reserve_extent+0x1a0/0x2f0 [btrfs]
+  [770.648] [c000200089afeea0] [c00800000f681bf0] btrfs_alloc_tree_block+0x108/0x670 [btrfs]
+  [770.648] [c000200089afeff0] [c00800000f66bd68] __btrfs_cow_block+0x170/0x850 [btrfs]
+  [770.648] [c000200089aff100] [c00800000f66c58c] btrfs_cow_block+0x144/0x288 [btrfs]
+  [770.648] [c000200089aff1b0] [c00800000f67113c] btrfs_search_slot+0x6b4/0xcb0 [btrfs]
+  [770.648] [c000200089aff2a0] [c00800000f679f60] lookup_inline_extent_backref+0x128/0x7c0 [btrfs]
+  [770.648] [c000200089aff3b0] [c00800000f67b338] lookup_extent_backref+0x70/0x190 [btrfs]
+  [770.648] [c000200089aff470] [c00800000f67b54c] __btrfs_free_extent+0xf4/0x1490 [btrfs]
+  [770.648] [c000200089aff5a0] [c00800000f67d770] __btrfs_run_delayed_refs+0x328/0x1530 [btrfs]
+  [770.648] [c000200089aff740] [c00800000f67ea2c] btrfs_run_delayed_refs+0xb4/0x3e0 [btrfs]
+  [770.648] [c000200089aff800] [c00800000f699aa4] btrfs_commit_transaction+0x8c/0x12b0 [btrfs]
+  [770.648] [c000200089aff8f0] [c00800000f6dc628] reset_balance_state+0x1c0/0x290 [btrfs]
+  [770.648] [c000200089aff9a0] [c00800000f6e2f7c] btrfs_balance+0x1164/0x1500 [btrfs]
+  [770.648] [c000200089affb40] [c00800000f6f8e4c] btrfs_ioctl+0x2b54/0x3100 [btrfs]
+  [770.648] [c000200089affc80] [c00000000053be14] sys_ioctl+0x794/0x1310
+  [770.648] [c000200089affd70] [c00000000002af98] system_call_exception+0x138/0x250
+  [770.648] [c000200089affe10] [c00000000000c654] system_call_common+0xf4/0x258
+  [770.648] --- interrupt: c00 at 0x7fff94126800
+  [770.648] NIP:  00007fff94126800 LR: 0000000107e0b594 CTR: 0000000000000000
+  [770.648] REGS: c000200089affe80 TRAP: 0c00   Tainted: G        W (6.1.0-0.deb11.7-powerpc64le Debian 6.1.20-2~bpo11+1a~test)
+  [770.648] MSR:  900000000000d033 <SF,HV,EE,PR,ME,IR,DR,RI,LE>  CR: 24002848  XER: 00000000
+  [770.648] IRQMASK: 0
+           GPR00: 0000000000000036 00007fffc9439da0 00007fff94217100 0000000000000003
+           GPR04: 00000000c4009420 00007fffc9439ee8 0000000000000000 0000000000000000
+           GPR08: 00000000803c7416 0000000000000000 0000000000000000 0000000000000000
+           GPR12: 0000000000000000 00007fff9467d120 0000000107e64c9c 0000000107e64d0a
+           GPR16: 0000000107e64d06 0000000107e64cf1 0000000107e64cc4 0000000107e64c73
+           GPR20: 0000000107e64c31 0000000107e64bf1 0000000107e64be7 0000000000000000
+           GPR24: 0000000000000000 00007fffc9439ee0 0000000000000003 0000000000000001
+           GPR28: 00007fffc943f713 0000000000000000 00007fffc9439ee8 0000000000000000
+  [770.648] NIP [00007fff94126800] 0x7fff94126800
+  [770.648] LR [0000000107e0b594] 0x107e0b594
+  [770.648] --- interrupt: c00
+  [770.648] Instruction dump:
+  [770.648] 3b00ffe4 e8898828 481175f5 60000000 4bfff4fc 3be00000 4bfff570 3d220000
+  [770.648] 7fc4f378 e8698830 4811cd95 e8410018 <0fe00000> f9c10060 f9e10068 fa010070
+  [770.648] ---[ end trace 0000000000000000 ]---
+  [770.648] BTRFS: error (device dm-2: state A) in find_free_extent_update_loop:4122: errno=-22 unknown
+  [770.648] BTRFS info (device dm-2: state EA): forced readonly
+  [770.648] BTRFS: error (device dm-2: state EA) in __btrfs_free_extent:3070: errno=-22 unknown
+  [770.648] BTRFS error (device dm-2: state EA): failed to run delayed ref for logical 17838685708288 num_bytes 24576 type 184 action 2 ref_mod 1: -22
+  [770.648] BTRFS: error (device dm-2: state EA) in btrfs_run_delayed_refs:2144: errno=-22 unknown
+  [770.648] BTRFS: error (device dm-2: state EA) in reset_balance_state:3599: errno=-22 unknown
+
+Fixes: 47e6f7423b91 ("btrfs: add support for 3-copy replication (raid1c3)")
+Fixes: 8d6fac0087e5 ("btrfs: add support for 4-copy replication (raid1c4)")
+CC: stable@vger.kernel.org # 5.10+
+Signed-off-by: Matt Corallo <blnxfsl@bluematt.me>
+Reviewed-by: David Sterba <dsterba@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/btrfs/block-group.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/fs/btrfs/block-group.c
++++ b/fs/btrfs/block-group.c
+@@ -77,14 +77,21 @@ static u64 btrfs_reduce_alloc_profile(st
+       }
+       allowed &= flags;
+-      if (allowed & BTRFS_BLOCK_GROUP_RAID6)
++      /* Select the highest-redundancy RAID level. */
++      if (allowed & BTRFS_BLOCK_GROUP_RAID1C4)
++              allowed = BTRFS_BLOCK_GROUP_RAID1C4;
++      else if (allowed & BTRFS_BLOCK_GROUP_RAID6)
+               allowed = BTRFS_BLOCK_GROUP_RAID6;
++      else if (allowed & BTRFS_BLOCK_GROUP_RAID1C3)
++              allowed = BTRFS_BLOCK_GROUP_RAID1C3;
+       else if (allowed & BTRFS_BLOCK_GROUP_RAID5)
+               allowed = BTRFS_BLOCK_GROUP_RAID5;
+       else if (allowed & BTRFS_BLOCK_GROUP_RAID10)
+               allowed = BTRFS_BLOCK_GROUP_RAID10;
+       else if (allowed & BTRFS_BLOCK_GROUP_RAID1)
+               allowed = BTRFS_BLOCK_GROUP_RAID1;
++      else if (allowed & BTRFS_BLOCK_GROUP_DUP)
++              allowed = BTRFS_BLOCK_GROUP_DUP;
+       else if (allowed & BTRFS_BLOCK_GROUP_RAID0)
+               allowed = BTRFS_BLOCK_GROUP_RAID0;
diff --git a/queue-5.10/btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch b/queue-5.10/btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
new file mode 100644 (file)
index 0000000..cd07459
--- /dev/null
@@ -0,0 +1,84 @@
+From b31cb5a6eb7a48b0a7bfdf06832b1fd5088d8c79 Mon Sep 17 00:00:00 2001
+From: Filipe Manana <fdmanana@suse.com>
+Date: Mon, 19 Jun 2023 17:21:47 +0100
+Subject: btrfs: fix race when deleting quota root from the dirty cow roots list
+
+From: Filipe Manana <fdmanana@suse.com>
+
+commit b31cb5a6eb7a48b0a7bfdf06832b1fd5088d8c79 upstream.
+
+When disabling quotas we are deleting the quota root from the list
+fs_info->dirty_cowonly_roots without taking the lock that protects it,
+which is struct btrfs_fs_info::trans_lock. This unsynchronized list
+manipulation may cause chaos if there's another concurrent manipulation
+of this list, such as when adding a root to it with
+ctree.c:add_root_to_dirty_list().
+
+This can result in all sorts of weird failures caused by a race, such as
+the following crash:
+
+  [337571.278245] general protection fault, probably for non-canonical address 0xdead000000000108: 0000 [#1] PREEMPT SMP PTI
+  [337571.278933] CPU: 1 PID: 115447 Comm: btrfs Tainted: G        W          6.4.0-rc6-btrfs-next-134+ #1
+  [337571.279153] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
+  [337571.279572] RIP: 0010:commit_cowonly_roots+0x11f/0x250 [btrfs]
+  [337571.279928] Code: 85 38 06 00 (...)
+  [337571.280363] RSP: 0018:ffff9f63446efba0 EFLAGS: 00010206
+  [337571.280582] RAX: ffff942d98ec2638 RBX: ffff9430b82b4c30 RCX: 0000000449e1c000
+  [337571.280798] RDX: dead000000000100 RSI: ffff9430021e4900 RDI: 0000000000036070
+  [337571.281015] RBP: ffff942d98ec2000 R08: ffff942d98ec2000 R09: 000000000000015b
+  [337571.281254] R10: 0000000000000009 R11: 0000000000000001 R12: ffff942fe8fbf600
+  [337571.281476] R13: ffff942dabe23040 R14: ffff942dabe20800 R15: ffff942d92cf3b48
+  [337571.281723] FS:  00007f478adb7340(0000) GS:ffff94349fa40000(0000) knlGS:0000000000000000
+  [337571.281950] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+  [337571.282184] CR2: 00007f478ab9a3d5 CR3: 000000001e02c001 CR4: 0000000000370ee0
+  [337571.282416] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+  [337571.282647] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
+  [337571.282874] Call Trace:
+  [337571.283101]  <TASK>
+  [337571.283327]  ? __die_body+0x1b/0x60
+  [337571.283570]  ? die_addr+0x39/0x60
+  [337571.283796]  ? exc_general_protection+0x22e/0x430
+  [337571.284022]  ? asm_exc_general_protection+0x22/0x30
+  [337571.284251]  ? commit_cowonly_roots+0x11f/0x250 [btrfs]
+  [337571.284531]  btrfs_commit_transaction+0x42e/0xf90 [btrfs]
+  [337571.284803]  ? _raw_spin_unlock+0x15/0x30
+  [337571.285031]  ? release_extent_buffer+0x103/0x130 [btrfs]
+  [337571.285305]  reset_balance_state+0x152/0x1b0 [btrfs]
+  [337571.285578]  btrfs_balance+0xa50/0x11e0 [btrfs]
+  [337571.285864]  ? __kmem_cache_alloc_node+0x14a/0x410
+  [337571.286086]  btrfs_ioctl+0x249a/0x3320 [btrfs]
+  [337571.286358]  ? mod_objcg_state+0xd2/0x360
+  [337571.286577]  ? refill_obj_stock+0xb0/0x160
+  [337571.286798]  ? seq_release+0x25/0x30
+  [337571.287016]  ? __rseq_handle_notify_resume+0x3ba/0x4b0
+  [337571.287235]  ? percpu_counter_add_batch+0x2e/0xa0
+  [337571.287455]  ? __x64_sys_ioctl+0x88/0xc0
+  [337571.287675]  __x64_sys_ioctl+0x88/0xc0
+  [337571.287901]  do_syscall_64+0x38/0x90
+  [337571.288126]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
+  [337571.288352] RIP: 0033:0x7f478aaffe9b
+
+So fix this by locking struct btrfs_fs_info::trans_lock before deleting
+the quota root from that list.
+
+Fixes: bed92eae26cc ("Btrfs: qgroup implementation and prototypes")
+CC: stable@vger.kernel.org # 4.14+
+Signed-off-by: Filipe Manana <fdmanana@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/btrfs/qgroup.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/fs/btrfs/qgroup.c
++++ b/fs/btrfs/qgroup.c
+@@ -1270,7 +1270,9 @@ int btrfs_quota_disable(struct btrfs_fs_
+               goto out;
+       }
++      spin_lock(&fs_info->trans_lock);
+       list_del(&quota_root->dirty_list);
++      spin_unlock(&fs_info->trans_lock);
+       btrfs_tree_lock(quota_root->node);
+       btrfs_clean_tree_block(quota_root->node);
diff --git a/queue-5.10/leds-trigger-netdev-recheck-netdev_led_mode_linkup-on-dev-rename.patch b/queue-5.10/leds-trigger-netdev-recheck-netdev_led_mode_linkup-on-dev-rename.patch
new file mode 100644 (file)
index 0000000..de3cc3c
--- /dev/null
@@ -0,0 +1,39 @@
+From cee4bd16c3195a701be683f7da9e88c6e11acb73 Mon Sep 17 00:00:00 2001
+From: Christian Marangi <ansuelsmth@gmail.com>
+Date: Wed, 19 Apr 2023 23:07:39 +0200
+Subject: leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
+
+From: Christian Marangi <ansuelsmth@gmail.com>
+
+commit cee4bd16c3195a701be683f7da9e88c6e11acb73 upstream.
+
+Dev can be renamed also while up for supported device. We currently
+wrongly clear the NETDEV_LED_MODE_LINKUP flag on NETDEV_CHANGENAME
+event.
+
+Fix this by rechecking if the carrier is ok on NETDEV_CHANGENAME and
+correctly set the NETDEV_LED_MODE_LINKUP bit.
+
+Fixes: 5f820ed52371 ("leds: trigger: netdev: fix handling on interface rename")
+Cc: stable@vger.kernel.org # v5.5+
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Lee Jones <lee@kernel.org>
+Link: https://lore.kernel.org/r/20230419210743.3594-2-ansuelsmth@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/leds/trigger/ledtrig-netdev.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/leds/trigger/ledtrig-netdev.c
++++ b/drivers/leds/trigger/ledtrig-netdev.c
+@@ -318,6 +318,9 @@ static int netdev_trig_notify(struct not
+       clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
+       switch (evt) {
+       case NETDEV_CHANGENAME:
++              if (netif_carrier_ok(dev))
++                      set_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
++              fallthrough;
+       case NETDEV_REGISTER:
+               if (trigger_data->net_dev)
+                       dev_put(trigger_data->net_dev);
index e83db37059e739852567602001d489eb87cef74a..ef58c4cb1d863b9a75c5c64ffe30d1daaabb81da 100644 (file)
@@ -302,3 +302,9 @@ ext4-remove-ext4-locking-of-moved-directory.patch
 revert-f2fs-fix-potential-corruption-when-moving-a-directory.patch
 fs-establish-locking-order-for-unrelated-directories.patch
 fs-lock-moved-directories.patch
+btrfs-add-handling-for-raid1c23-dup-to-btrfs_reduce_alloc_profile.patch
+btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
+asoc-mediatek-mt8173-fix-irq-error-path.patch
+asoc-mediatek-mt8173-fix-snd_soc_component_initialize-error-path.patch
+arm-orion5x-fix-d2net-gpio-initialization.patch
+leds-trigger-netdev-recheck-netdev_led_mode_linkup-on-dev-rename.patch