diff options
Diffstat (limited to 'target/linux/generic/patches-4.9/060-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch')
-rw-r--r-- | target/linux/generic/patches-4.9/060-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.9/060-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch b/target/linux/generic/patches-4.9/060-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch new file mode 100644 index 0000000000..7eed77775a --- /dev/null +++ b/target/linux/generic/patches-4.9/060-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch @@ -0,0 +1,40 @@ +From bd5d21310133921021d78995ad6346f908483124 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Sun, 20 Nov 2016 16:09:30 +0100 +Subject: [PATCH] mtd: bcm47xxpart: fix parsing first block after aligned TRX +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +After parsing TRX we should skip to the first block placed behind it. +Our code was working only with TRX with length not aligned to the +blocksize. In other cases (length aligned) it was missing the block +places right after TRX. + +This fixes calculation and simplifies the comment. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Brian Norris <computersforpeace@gmail.com> +--- + drivers/mtd/bcm47xxpart.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +--- a/drivers/mtd/bcm47xxpart.c ++++ b/drivers/mtd/bcm47xxpart.c +@@ -229,12 +229,10 @@ static int bcm47xxpart_parse(struct mtd_ + + last_trx_part = curr_part - 1; + +- /* +- * We have whole TRX scanned, skip to the next part. Use +- * roundown (not roundup), as the loop will increase +- * offset in next step. +- */ +- offset = rounddown(offset + trx->length, blocksize); ++ /* Jump to the end of TRX */ ++ offset = roundup(offset + trx->length, blocksize); ++ /* Next loop iteration will increase the offset */ ++ offset -= blocksize; + continue; + } + |