Messages in this thread | | | Date | Wed, 16 Dec 2009 10:20:30 +0900 | From | Kyungmin Park <> | Subject | RE: [PATCH] OneNAND: Fix test of unsigned in onenand_otp_walk() |
| |
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
> -----Original Message----- > From: Roel Kluin [mailto:roel.kluin@gmail.com] > Sent: Wednesday, December 16, 2009 9:37 AM > To: Kyungmin Park; linux-mtd@lists.infradead.org; Andrew Morton; LKML > Subject: [PATCH] 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 <roel.kluin@gmail.com> > --- > 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; > } > > > diff --git a/drivers/mtd/onenand/onenand_base.c > b/drivers/mtd/onenand/onenand_base.c > index ff66e43..cbe2711 100644 > --- a/drivers/mtd/onenand/onenand_base.c > +++ b/drivers/mtd/onenand/onenand_base.c > @@ -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);
| |