瀏覽代碼

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 <[email protected]>
Daniel Golle 4 年之前
父節點
當前提交
4ae4035e60

+ 1 - 0
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

+ 1 - 0
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