diff mbox

mtd: bcm47xxpart: fix parsing first block after aligned TRX

Message ID 20161120150930.25401-1-zajec5@gmail.com
State Accepted
Commit bd5d21310133921021d78995ad6346f908483124
Headers show

Commit Message

Rafał Miłecki Nov. 20, 2016, 3:09 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

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>
---
 drivers/mtd/bcm47xxpart.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Brian Norris Nov. 22, 2016, 7:45 p.m. UTC | #1
On Sun, Nov 20, 2016 at 04:09:30PM +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> 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>

Applied to l2-mtd.git
diff mbox

Patch

diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c
index 3779475..283ff7e 100644
--- a/drivers/mtd/bcm47xxpart.c
+++ b/drivers/mtd/bcm47xxpart.c
@@ -229,12 +229,10 @@  static int bcm47xxpart_parse(struct mtd_info *master,
 
 			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;
 		}