OneNAND: Fix test of unsigned in onenand_otp_walk()
PATCH 1/1 OneNAND: Fix test of unsigned in onenand_otp_walk()
mtd->writesize and len are unsigned so the test does not work.
Signed-off-by Roel Kluin <[email protected]>
---
you can test this with:
#include <stdio.h>
int main()
{
int c = 1, d = 1;
unsigned a = 30;
unsigned b = 10;
if ((b * c) - (d + a) < 0)
printf("good\n");
else
printf("bad\n");
return 0;
}drivers/mtd/onenand/onenand_base.c +1 -1
@@ -2725,7 +2725,7 @@ static int onenand_otp_walk(struct mtd_info *mtd, loff_t from, size_t len, }/* Check User/Factory boundary */ -if (((mtd->writesize * otp_pages) - (from + len)) <0 ) +if (mtd->writesize * otp_pages < from + len)return 0 ;onenand_get_device (mtd,FL_OTPING );
Acked-by Kyungmin Park <[email protected]>
Quoted 43 lines
-----Original Message-----
From: Roel Kluin [mailto:[email protected]]
Sent: Wednesday, December 16, 2009 9:37 AM
To: Kyungmin Park; [email protected]; Andrew Morton; LKML
Subject: [PATCH] OneNAND: Fix test of unsigned inonenand_otp_walk()
mtd->writesizeand len are unsigned so the test does not work.Signed-off-by Roel Kluin <[email protected]>---
you can test this with:#include <
stdio.h>int
main(){ int c = 1, d = 1; unsigned a = 30; unsigned b = 10; if ((b * c) - (d + a) < 0) printf("good\n"); else printf("bad\n"); return 0; }drivers/mtd/onenand/onenand_base.c +1
-1@@ -2725,7 +2725,7 @@ static int onenand_otp_walk(struct mtd_info *mtd, loff_t from, size_t len, }/* Check User/Factory boundary */ -if (((mtd->writesize * otp_pages) - (from + len)) <0 ) +if (mtd->writesize * otp_pages < from + len)return 0 ;
onenand_get_device(mtd, FL_OTPING);