diff -urN linux-2.6.21.1.old/drivers/mtd/devices/block2mtd.c linux-2.6.21.1.dev/drivers/mtd/devices/block2mtd.c
--- linux-2.6.21.1.old/drivers/mtd/devices/block2mtd.c	2007-05-26 21:10:15.776816384 +0200
+++ linux-2.6.21.1.dev/drivers/mtd/devices/block2mtd.c	2007-05-26 21:10:16.513704360 +0200
@@ -112,7 +112,7 @@
 		if (IS_ERR(page))
 			return PTR_ERR(page);
 
-		max = (u_long*)page_address(page) + PAGE_SIZE;
+		max = (u_long*) ((u8 *) page_address(page) + PAGE_SIZE);
 		for (p=(u_long*)page_address(page); p<max; p++)
 			if (*p != -1UL) {
 				lock_page(page);