aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2021-10-27 15:30:39 +0100
committerDaniel Golle <daniel@makrotopia.org>2021-10-28 16:27:27 +0100
commit4ae4035e6012c19a5f2931025c09f29d1c1939ae (patch)
tree0792587f60911ed223610633caa439a50dc618c7 /target/linux/mediatek
parentb2aca61360c33ad3161f8ef35a1c28ebb2507600 (diff)
downloadupstream-4ae4035e6012c19a5f2931025c09f29d1c1939ae.tar.gz
upstream-4ae4035e6012c19a5f2931025c09f29d1c1939ae.tar.bz2
upstream-4ae4035e6012c19a5f2931025c09f29d1c1939ae.zip
mediatek: make sure MMC is not busy before commencing sysupgrade
In case of the block device still being in use, re-reading the partition table fails. In that case, abort sysupgrade to avoid corrupting the just-written image because of wrong offsets caused by failure to re-read the partition table. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'target/linux/mediatek')
-rwxr-xr-xtarget/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh1
-rwxr-xr-xtarget/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh1
2 files changed, 2 insertions, 0 deletions
diff --git a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
index 0cdd8df8f9..513741d667 100755
--- a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
@@ -12,6 +12,7 @@ platform_do_upgrade() {
export_partdevice rootdev 0
case "$rootdev" in
mmc*)
+ blockdev --rereadpt /dev/$rootdev || return 1
local fitpart=$(get_partition_by_name $rootdev "production")
[ "$fitpart" ] || return 1
dd if=/dev/zero of=/dev/$fitpart bs=4096 count=1 2>/dev/null
diff --git a/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh
index 4564bc61dd..11da6314dc 100755
--- a/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh
@@ -86,6 +86,7 @@ platform_do_upgrade() {
bananapi,bpi-r2)
export_bootdevice
export_partdevice rootdev 0
+ blockdev --rereadpt /dev/$rootdev || return 1
export_partdevice fitpart 3
[ "$fitpart" ] || return 1
dd if=/dev/zero of=/dev/$fitpart bs=4096 count=1 2>/dev/null