new helper: ext2_image_size()
[linux-2.6-block.git] / arch / blackfin / kernel / setup.c
index 2aa01936850422a477c6da441d04d84408b2ef26..2ad747e909fb6bdedae841839383e8459f9e844e 100644 (file)
@@ -550,6 +550,7 @@ static __init void memory_setup(void)
 {
 #ifdef CONFIG_MTD_UCLINUX
        unsigned long mtd_phys = 0;
+       unsigned long n;
 #endif
        unsigned long max_mem;
 
@@ -593,9 +594,9 @@ static __init void memory_setup(void)
        mtd_size = PAGE_ALIGN(*((unsigned long *)(mtd_phys + 8)));
 
 # if defined(CONFIG_EXT2_FS) || defined(CONFIG_EXT3_FS)
-       if (*((unsigned short *)(mtd_phys + 0x438)) == EXT2_SUPER_MAGIC)
-               mtd_size =
-                   PAGE_ALIGN(*((unsigned long *)(mtd_phys + 0x404)) << 10);
+       n = ext2_image_size((void *)(mtd_phys + 0x400));
+       if (n)
+               mtd_size = PAGE_ALIGN(n * 1024);
 # endif
 
 # if defined(CONFIG_CRAMFS)