summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle2025-03-28 15:40:28 +0000
committerDaniel Golle2025-03-28 15:42:41 +0000
commit2b9c81d1cbc65eeb9304b7274058418efa8a9c78 (patch)
tree7683789dcc06c572d0ecc114993f87f4bbc40da1
parent21cece29e9eebc397eadee259e60c7fc44828cce (diff)
downloadopenwrt-2b9c81d1cbc65eeb9304b7274058418efa8a9c78.tar.gz
generic: fitblk: close block device if mapping image failed
In case a broken fit image is present on flash the fitblk driver would not map any /dev/fit* devices, but also not always close the block device the image resides on. In case of ubiblock devices this is fatal as one then cannot remove the ubiblock device (-EBUSY), and hence cannot replace the broken image. Always close the block device in case no sub-image was mapped. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r--target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch4
1 files changed, 2 insertions, 2 deletions
diff --git a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
index b06c29ffaf..5a88631513 100644
--- a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
+++ b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
@@ -656,7 +656,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+ add_fit_subimage_device(bdev, slot++, start_sect, nr_sects, true);
+ }
+
-+ if (!found || !slot)
++ if (!slot)
+ goto out_bootconf;
+
+ dev_info(dev, "mapped %u uImage.FIT filesystem sub-image%s as /dev/fit%s%u%s\n",
@@ -675,7 +675,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+ kfree(bootconf);
+ kfree(fit);
+out_blkdev:
-+ if (!found || ret)
++ if (!slot)
+ blkdev_put(bdev, &_fitblk_claim_ptr);
+
+ return ret;