[PATCH] OneNAND: Fix test of unsigned in onenand_otp_walk()
Kyungmin Park
kyungmin.park at samsung.com
Tue Dec 15 20:20:30 EST 2009
Acked-by: Kyungmin Park <kyungmin.park at samsung.com>
> -----Original Message-----
> From: Roel Kluin [mailto:roel.kluin at gmail.com]
> Sent: Wednesday, December 16, 2009 9:37 AM
> To: Kyungmin Park; linux-mtd at 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 at 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);
More information about the linux-mtd
mailing list