aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/maps/uclinux.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/mtd/maps/uclinux.c b/drivers/mtd/maps/uclinux.c
index 811d92e5f5b1..cc372136e852 100644
--- a/drivers/mtd/maps/uclinux.c
+++ b/drivers/mtd/maps/uclinux.c
@@ -25,9 +25,6 @@
25 25
26/****************************************************************************/ 26/****************************************************************************/
27 27
28
29/****************************************************************************/
30
31struct map_info uclinux_ram_map = { 28struct map_info uclinux_ram_map = {
32 .name = "RAM", 29 .name = "RAM",
33}; 30};
@@ -60,14 +57,15 @@ int __init uclinux_mtd_init(void)
60 struct mtd_info *mtd; 57 struct mtd_info *mtd;
61 struct map_info *mapp; 58 struct map_info *mapp;
62 extern char _ebss; 59 extern char _ebss;
60 unsigned long addr = (unsigned long) &_ebss;
63 61
64 mapp = &uclinux_ram_map; 62 mapp = &uclinux_ram_map;
65 mapp->phys = (unsigned long) &_ebss; 63 mapp->phys = addr;
66 mapp->size = PAGE_ALIGN(*((unsigned long *)((&_ebss) + 8))); 64 mapp->size = PAGE_ALIGN(ntohl(*((unsigned long *)(addr + 8))));
67 mapp->bankwidth = 4; 65 mapp->bankwidth = 4;
68 66
69 printk("uclinux[mtd]: RAM probe address=0x%x size=0x%x\n", 67 printk("uclinux[mtd]: RAM probe address=0x%x size=0x%x\n",
70 (int) mapp->map_priv_2, (int) mapp->size); 68 (int) mapp->phys, (int) mapp->size);
71 69
72 mapp->virt = ioremap_nocache(mapp->phys, mapp->size); 70 mapp->virt = ioremap_nocache(mapp->phys, mapp->size);
73 71
@@ -95,7 +93,6 @@ int __init uclinux_mtd_init(void)
95 printk("uclinux[mtd]: set %s to be root filesystem\n", 93 printk("uclinux[mtd]: set %s to be root filesystem\n",
96 uclinux_romfs[0].name); 94 uclinux_romfs[0].name);
97 ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, 0); 95 ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, 0);
98 put_mtd_device(mtd);
99 96
100 return(0); 97 return(0);
101} 98}
@@ -109,7 +106,7 @@ void __exit uclinux_mtd_cleanup(void)
109 map_destroy(uclinux_ram_mtdinfo); 106 map_destroy(uclinux_ram_mtdinfo);
110 uclinux_ram_mtdinfo = NULL; 107 uclinux_ram_mtdinfo = NULL;
111 } 108 }
112 if (uclinux_ram_map.map_priv_1) { 109 if (uclinux_ram_map.virt) {
113 iounmap((void *) uclinux_ram_map.virt); 110 iounmap((void *) uclinux_ram_map.virt);
114 uclinux_ram_map.virt = 0; 111 uclinux_ram_map.virt = 0;
115 } 112 }