When recursively deleting partitions, don't acquire the masters partition lock twice. Otherwise the process endy up in a deadlocked state.
Signed-off-by: David Bauer <m...@david-bauer.net> --- ...when-recursively-deleting-partitions.patch | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 target/linux/generic/pending-5.10/499-mtd-don-t-lock-when-recursively-deleting-partitions.patch diff --git a/target/linux/generic/pending-5.10/499-mtd-don-t-lock-when-recursively-deleting-partitions.patch b/target/linux/generic/pending-5.10/499-mtd-don-t-lock-when-recursively-deleting-partitions.patch new file mode 100644 index 0000000000..505131b684 --- /dev/null +++ b/target/linux/generic/pending-5.10/499-mtd-don-t-lock-when-recursively-deleting-partitions.patch @@ -0,0 +1,24 @@ +From: David Bauer <m...@david-bauer.net> +Date: Wed, 17 Feb 2021 03:21:39 +0100 +Subject: [PATCH] mtd: don't lock when recursively deleting partitions + +When recursively deleting partitions, don't acquire the masters +partition lock twice. Otherwise the process endy up in a deadlocked +state. + +Signed-off-by: David Bauer <m...@david-bauer.net> +--- + drivers/mtd/mtdpart.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mtd/mtdpart.c ++++ b/drivers/mtd/mtdpart.c +@@ -474,7 +474,7 @@ static int __del_mtd_partitions(struct m + + list_for_each_entry_safe(child, next, &mtd->partitions, part.node) { + if (mtd_has_partitions(child)) +- del_mtd_partitions(child); ++ __del_mtd_partitions(child); + + pr_info("Deleting %s MTD partition\n", child->name); + ret = del_mtd_device(child); -- 2.30.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel