diff mbox

[LEDE-DEV,v2,18/19] sunxi: sysupgrade: don't write partitions twice

Message ID 18a77822b59f31a3edb928861c18cd1035a1b3ff.1494704975.git.mschiffer@universe-factory.net
State Accepted
Headers show

Commit Message

Matthias Schiffer May 13, 2017, 7:56 p.m. UTC
When existing partitions are retained, the dd call writing the uboot image
in the space before the first partition was accidentally writing the whole
image, making the code for individual partitions redundant. Limit the copy
to 1016KiB (the first 8KiB are skipped, and the first partition starts at
1024KiB).

In addition, conv=notrunc is replaced with conv=fsync. It seems this was an
oversight, as notrunc doesn't make sense for block devices and all other dd
commands use conv=fsync.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
 target/linux/sunxi/base-files/lib/upgrade/platform.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox

Patch

diff --git a/target/linux/sunxi/base-files/lib/upgrade/platform.sh b/target/linux/sunxi/base-files/lib/upgrade/platform.sh
index f2cd970d42..776bdf53bf 100644
--- a/target/linux/sunxi/base-files/lib/upgrade/platform.sh
+++ b/target/linux/sunxi/base-files/lib/upgrade/platform.sh
@@ -43,7 +43,7 @@  platform_do_upgrade() {
 			fi
 
 			#write uboot image
-			get_image "$@" | dd of="$diskdev" bs=1024 skip=8 seek=8 conv=notrunc
+			get_image "$@" | dd of="$diskdev" bs=1024 skip=8 seek=8 count=1016 conv=fsync
 			#iterate over each partition from the image and write it to the boot disk
 			while read part start size; do
 				part="$(($part - 2))"