aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2017-05-04 07:29:58 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2017-05-29 23:50:34 +0200
commit6bb7b873158853efe31d760e18667d3ff8343291 (patch)
tree912a986911364d40f4957c973a962cca39a0f0ed
parentdac07ca05bab5ba61e109d05b66acc394c497016 (diff)
downloadupstream-6bb7b873158853efe31d760e18667d3ff8343291.tar.gz
upstream-6bb7b873158853efe31d760e18667d3ff8343291.tar.bz2
upstream-6bb7b873158853efe31d760e18667d3ff8343291.zip
sunxi: sysupgrade: don't write partitions twice
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>
-rw-r--r--target/linux/sunxi/base-files/lib/upgrade/platform.sh2
1 files changed, 1 insertions, 1 deletions
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))"