mtd: bcm47xxpart: fix parsing first block after aligned TRX

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri Dec 16 11:59:02 PST 2016


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=bd5d21310133921021d78995ad6346f908483124
Commit:     bd5d21310133921021d78995ad6346f908483124
Parent:     64ad46379fcf14f437553f654d1adcd3d0e0d7f9
Author:     Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Sun Nov 20 16:09:30 2016 +0100
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Tue Nov 22 11:09:48 2016 -0800

    mtd: bcm47xxpart: fix parsing first block after aligned TRX
    
    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 at milecki.pl>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/bcm47xxpart.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

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;
 		}
 



More information about the linux-mtd-cvs mailing list