All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nand_base.c: fix type of eccpos pointer
@ 2007-05-28 18:17 Ben Dooks
  0 siblings, 0 replies; only message in thread
From: Ben Dooks @ 2007-05-28 18:17 UTC (permalink / raw)
  To: linux-mtd

The nand_base.c driver implicitly casts the uint32_t
eccpos array to 'int *', which is not only not guaranteed
to be the same sign as the source, but is not guaranteed
to be the same size.

Fix by changing nand_base.c to use uint32_t
referencing the eccpos fields.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>

diff -urpN -X linux-2.6.22-rc3/Documentation/dontdiff linux-2.6.22-rc3/drivers/mtd/nand/nand_base.c linux-2.6.22-rc3-sparse1/drivers/mtd/nand/nand_base.c
--- linux-2.6.22-rc3/drivers/mtd/nand/nand_base.c	2007-05-27 18:54:21.000000000 +0100
+++ linux-2.6.22-rc3-sparse1/drivers/mtd/nand/nand_base.c	2007-05-28 19:13:30.000000000 +0100
@@ -768,7 +768,7 @@ static int nand_read_page_swecc(struct m
 	uint8_t *p = buf;
 	uint8_t *ecc_calc = chip->buffers->ecccalc;
 	uint8_t *ecc_code = chip->buffers->ecccode;
-	int *eccpos = chip->ecc.layout->eccpos;
+	uint32_t *eccpos = chip->ecc.layout->eccpos;
 
 	chip->ecc.read_page_raw(mtd, chip, buf);
 
@@ -810,7 +810,7 @@ static int nand_read_page_hwecc(struct m
 	uint8_t *p = buf;
 	uint8_t *ecc_calc = chip->buffers->ecccalc;
 	uint8_t *ecc_code = chip->buffers->ecccode;
-	int *eccpos = chip->ecc.layout->eccpos;
+	uint32_t *eccpos = chip->ecc.layout->eccpos;
 
 	for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
 		chip->ecc.hwctl(mtd, NAND_ECC_READ);
@@ -1416,7 +1416,7 @@ static void nand_write_page_swecc(struct
 	int eccsteps = chip->ecc.steps;
 	uint8_t *ecc_calc = chip->buffers->ecccalc;
 	const uint8_t *p = buf;
-	int *eccpos = chip->ecc.layout->eccpos;
+	uint32_t *eccpos = chip->ecc.layout->eccpos;
 
 	/* Software ecc calculation */
 	for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize)
@@ -1442,7 +1442,7 @@ static void nand_write_page_hwecc(struct
 	int eccsteps = chip->ecc.steps;
 	uint8_t *ecc_calc = chip->buffers->ecccalc;
 	const uint8_t *p = buf;
-	int *eccpos = chip->ecc.layout->eccpos;
+	uint32_t *eccpos = chip->ecc.layout->eccpos;
 
 	for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
 		chip->ecc.hwctl(mtd, NAND_ECC_WRITE);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-05-28 18:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-28 18:17 [PATCH] nand_base.c: fix type of eccpos pointer Ben Dooks

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.