mtd_dataflash bug

Peter Korsgaard jacmet at sunsite.dk
Wed May 13 08:12:58 EDT 2009


>>>>> "Tobias" == Tobias Simon <tobias.simon at sp-ss.de> writes:

 Tobias> Hello List,
 Tobias> i have figured out a bug in mtd_datflash.c of kernel 2.6.29, which
 Tobias> causes my ARM bootloader to be killed with every "erase" operation on
 Tobias> arbitrary adresses. The fix is:

Ahh yes, I just sent a patch for the same thing a bit earlier.

This (or my patch) should go to 2.6.29-stable as well.


 Tobias> --- linux-2.6.29.2-a/drivers/mtd/devices/mtd_dataflash.c  2009-05-13
 Tobias> 03:11:16.000000000 +0200
 Tobias> +++ linux-2.6.29.2-b/drivers/mtd/devices/mtd_dataflash.c
 Tobias> 2009-05-13 03:13:30.000000000 +0200
 Tobias> @@ -184,7 +184,7 @@
 Tobias>                /* Calculate flash page address; use block erase (for
 Tobias> speed) if
 Tobias>                 * we're at a block boundary and need to erase the
 Tobias> whole block.
 Tobias>                 */
 Tobias> -               pageaddr = div_u64(instr->len, priv->page_size);
 Tobias> +               pageaddr = div_u64(instr->addr, priv->page_size);
 Tobias>                do_block = (pageaddr & 0x7) == 0 && instr->len >= blocksize;
 Tobias>                pageaddr = pageaddr << priv->page_offset;


-- 
Bye, Peter Korsgaard



More information about the linux-mtd mailing list