diff options
Diffstat (limited to 'arch/m32r')
| -rw-r--r-- | arch/m32r/kernel/entry.S | 2 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_m32700ut.c | 6 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_mappi.c | 2 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_mappi2.c | 11 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_mappi3.c | 7 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_oaks32r.c | 2 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_opsput.c | 8 | ||||
| -rw-r--r-- | arch/m32r/kernel/io_usrv.c | 2 | ||||
| -rw-r--r-- | arch/m32r/kernel/ptrace.c | 2 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup.c | 24 | ||||
| -rw-r--r-- | arch/m32r/kernel/time.c | 4 | ||||
| -rw-r--r-- | arch/m32r/lib/csum_partial_copy.c | 2 | ||||
| -rw-r--r-- | arch/m32r/mm/init.c | 9 | ||||
| -rw-r--r-- | arch/m32r/mm/ioremap.c | 4 |
14 files changed, 41 insertions, 44 deletions
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index 85920fb8d08c..396c94218cc2 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
| @@ -653,8 +653,6 @@ ENTRY(rie_handler) | |||
| 653 | SAVE_ALL | 653 | SAVE_ALL |
| 654 | mvfc r0, bpc | 654 | mvfc r0, bpc |
| 655 | ld r1, @r0 | 655 | ld r1, @r0 |
| 656 | seth r0, #0xa0f0 | ||
| 657 | st r1, @r0 | ||
| 658 | ldi r1, #0x20 ; error_code | 656 | ldi r1, #0x20 ; error_code |
| 659 | mv r0, sp ; pt_regs | 657 | mv r0, sp ; pt_regs |
| 660 | bl do_rie_handler | 658 | bl do_rie_handler |
diff --git a/arch/m32r/kernel/io_m32700ut.c b/arch/m32r/kernel/io_m32700ut.c index e545b065f7e9..eda9f963c1eb 100644 --- a/arch/m32r/kernel/io_m32700ut.c +++ b/arch/m32r/kernel/io_m32700ut.c | |||
| @@ -64,11 +64,11 @@ static inline void *__port2addr_ata(unsigned long port) | |||
| 64 | * from 0x10000000 to 0x13ffffff on physical address. | 64 | * from 0x10000000 to 0x13ffffff on physical address. |
| 65 | * The base address of LAN controller(LAN91C111) is 0x300. | 65 | * The base address of LAN controller(LAN91C111) is 0x300. |
| 66 | */ | 66 | */ |
| 67 | #define LAN_IOSTART 0x300 | 67 | #define LAN_IOSTART 0xa0000300 |
| 68 | #define LAN_IOEND 0x320 | 68 | #define LAN_IOEND 0xa0000320 |
| 69 | static inline void *_port2addr_ne(unsigned long port) | 69 | static inline void *_port2addr_ne(unsigned long port) |
| 70 | { | 70 | { |
| 71 | return (void *)(port + NONCACHE_OFFSET + 0x10000000); | 71 | return (void *)(port + 0x10000000); |
| 72 | } | 72 | } |
| 73 | static inline void *_port2addr_usb(unsigned long port) | 73 | static inline void *_port2addr_usb(unsigned long port) |
| 74 | { | 74 | { |
diff --git a/arch/m32r/kernel/io_mappi.c b/arch/m32r/kernel/io_mappi.c index 78033165fb5c..3c3da042fbd1 100644 --- a/arch/m32r/kernel/io_mappi.c +++ b/arch/m32r/kernel/io_mappi.c | |||
| @@ -31,7 +31,7 @@ extern void pcc_iowrite(int, unsigned long, void *, size_t, size_t, int); | |||
| 31 | 31 | ||
| 32 | static inline void *_port2addr(unsigned long port) | 32 | static inline void *_port2addr(unsigned long port) |
| 33 | { | 33 | { |
| 34 | return (void *)(port + NONCACHE_OFFSET); | 34 | return (void *)(port | (NONCACHE_OFFSET)); |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | static inline void *_port2addr_ne(unsigned long port) | 37 | static inline void *_port2addr_ne(unsigned long port) |
diff --git a/arch/m32r/kernel/io_mappi2.c b/arch/m32r/kernel/io_mappi2.c index 5c03504bf653..df3c729cb3e0 100644 --- a/arch/m32r/kernel/io_mappi2.c +++ b/arch/m32r/kernel/io_mappi2.c | |||
| @@ -33,12 +33,9 @@ extern void pcc_iowrite_word(int, unsigned long, void *, size_t, size_t, int); | |||
| 33 | 33 | ||
| 34 | static inline void *_port2addr(unsigned long port) | 34 | static inline void *_port2addr(unsigned long port) |
| 35 | { | 35 | { |
| 36 | return (void *)(port + NONCACHE_OFFSET); | 36 | return (void *)(port | (NONCACHE_OFFSET)); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | #define LAN_IOSTART 0x300 | ||
| 40 | #define LAN_IOEND 0x320 | ||
| 41 | |||
| 42 | #if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC) | 39 | #if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC) |
| 43 | static inline void *__port2addr_ata(unsigned long port) | 40 | static inline void *__port2addr_ata(unsigned long port) |
| 44 | { | 41 | { |
| @@ -59,15 +56,17 @@ static inline void *__port2addr_ata(unsigned long port) | |||
| 59 | } | 56 | } |
| 60 | #endif | 57 | #endif |
| 61 | 58 | ||
| 59 | #define LAN_IOSTART 0xa0000300 | ||
| 60 | #define LAN_IOEND 0xa0000320 | ||
| 62 | #ifdef CONFIG_CHIP_OPSP | 61 | #ifdef CONFIG_CHIP_OPSP |
| 63 | static inline void *_port2addr_ne(unsigned long port) | 62 | static inline void *_port2addr_ne(unsigned long port) |
| 64 | { | 63 | { |
| 65 | return (void *)(port + NONCACHE_OFFSET + 0x10000000); | 64 | return (void *)(port + 0x10000000); |
| 66 | } | 65 | } |
| 67 | #else | 66 | #else |
| 68 | static inline void *_port2addr_ne(unsigned long port) | 67 | static inline void *_port2addr_ne(unsigned long port) |
| 69 | { | 68 | { |
| 70 | return (void *)(port + NONCACHE_OFFSET + 0x04000000); | 69 | return (void *)(port + 0x04000000); |
| 71 | } | 70 | } |
| 72 | #endif | 71 | #endif |
| 73 | static inline void *_port2addr_usb(unsigned long port) | 72 | static inline void *_port2addr_usb(unsigned long port) |
diff --git a/arch/m32r/kernel/io_mappi3.c b/arch/m32r/kernel/io_mappi3.c index c80bde657854..6716ffea769a 100644 --- a/arch/m32r/kernel/io_mappi3.c +++ b/arch/m32r/kernel/io_mappi3.c | |||
| @@ -36,9 +36,6 @@ static inline void *_port2addr(unsigned long port) | |||
| 36 | return (void *)(port + NONCACHE_OFFSET); | 36 | return (void *)(port + NONCACHE_OFFSET); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | #define LAN_IOSTART 0x300 | ||
| 40 | #define LAN_IOEND 0x320 | ||
| 41 | |||
| 42 | #if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC) | 39 | #if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC) |
| 43 | static inline void *__port2addr_ata(unsigned long port) | 40 | static inline void *__port2addr_ata(unsigned long port) |
| 44 | { | 41 | { |
| @@ -59,9 +56,11 @@ static inline void *__port2addr_ata(unsigned long port) | |||
| 59 | } | 56 | } |
| 60 | #endif | 57 | #endif |
| 61 | 58 | ||
| 59 | #define LAN_IOSTART 0xa0000300 | ||
| 60 | #define LAN_IOEND 0xa0000320 | ||
| 62 | static inline void *_port2addr_ne(unsigned long port) | 61 | static inline void *_port2addr_ne(unsigned long port) |
| 63 | { | 62 | { |
| 64 | return (void *)(port + NONCACHE_OFFSET + 0x10000000); | 63 | return (void *)(port + 0x10000000); |
| 65 | } | 64 | } |
| 66 | 65 | ||
| 67 | static inline void *_port2addr_usb(unsigned long port) | 66 | static inline void *_port2addr_usb(unsigned long port) |
diff --git a/arch/m32r/kernel/io_oaks32r.c b/arch/m32r/kernel/io_oaks32r.c index 9997dddd24d7..8be323931e4a 100644 --- a/arch/m32r/kernel/io_oaks32r.c +++ b/arch/m32r/kernel/io_oaks32r.c | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | 16 | ||
| 17 | static inline void *_port2addr(unsigned long port) | 17 | static inline void *_port2addr(unsigned long port) |
| 18 | { | 18 | { |
| 19 | return (void *)(port + NONCACHE_OFFSET); | 19 | return (void *)(port | (NONCACHE_OFFSET)); |
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | static inline void *_port2addr_ne(unsigned long port) | 22 | static inline void *_port2addr_ne(unsigned long port) |
diff --git a/arch/m32r/kernel/io_opsput.c b/arch/m32r/kernel/io_opsput.c index e34951e8156f..4793bd18e115 100644 --- a/arch/m32r/kernel/io_opsput.c +++ b/arch/m32r/kernel/io_opsput.c | |||
| @@ -36,7 +36,7 @@ extern void pcc_iowrite_word(int, unsigned long, void *, size_t, size_t, int); | |||
| 36 | 36 | ||
| 37 | static inline void *_port2addr(unsigned long port) | 37 | static inline void *_port2addr(unsigned long port) |
| 38 | { | 38 | { |
| 39 | return (void *)(port + NONCACHE_OFFSET); | 39 | return (void *)(port | (NONCACHE_OFFSET)); |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | /* | 42 | /* |
| @@ -44,11 +44,11 @@ static inline void *_port2addr(unsigned long port) | |||
| 44 | * from 0x10000000 to 0x13ffffff on physical address. | 44 | * from 0x10000000 to 0x13ffffff on physical address. |
| 45 | * The base address of LAN controller(LAN91C111) is 0x300. | 45 | * The base address of LAN controller(LAN91C111) is 0x300. |
| 46 | */ | 46 | */ |
| 47 | #define LAN_IOSTART 0x300 | 47 | #define LAN_IOSTART 0xa0000300 |
| 48 | #define LAN_IOEND 0x320 | 48 | #define LAN_IOEND 0xa0000320 |
| 49 | static inline void *_port2addr_ne(unsigned long port) | 49 | static inline void *_port2addr_ne(unsigned long port) |
| 50 | { | 50 | { |
| 51 | return (void *)(port + NONCACHE_OFFSET + 0x10000000); | 51 | return (void *)(port + 0x10000000); |
| 52 | } | 52 | } |
| 53 | static inline void *_port2addr_usb(unsigned long port) | 53 | static inline void *_port2addr_usb(unsigned long port) |
| 54 | { | 54 | { |
diff --git a/arch/m32r/kernel/io_usrv.c b/arch/m32r/kernel/io_usrv.c index 9eb161dcc104..39a379af40bc 100644 --- a/arch/m32r/kernel/io_usrv.c +++ b/arch/m32r/kernel/io_usrv.c | |||
| @@ -47,7 +47,7 @@ static inline void *_port2addr(unsigned long port) | |||
| 47 | else if (port >= UART1_IOSTART && port <= UART1_IOEND) | 47 | else if (port >= UART1_IOSTART && port <= UART1_IOEND) |
| 48 | port = ((port - UART1_IOSTART) << 1) + UART1_REGSTART; | 48 | port = ((port - UART1_IOSTART) << 1) + UART1_REGSTART; |
| 49 | #endif /* CONFIG_SERIAL_8250 || CONFIG_SERIAL_8250_MODULE */ | 49 | #endif /* CONFIG_SERIAL_8250 || CONFIG_SERIAL_8250_MODULE */ |
| 50 | return (void *)(port + NONCACHE_OFFSET); | 50 | return (void *)(port | (NONCACHE_OFFSET)); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | static inline void delay(void) | 53 | static inline void delay(void) |
diff --git a/arch/m32r/kernel/ptrace.c b/arch/m32r/kernel/ptrace.c index 124f7c1b775e..078d2a0e71c2 100644 --- a/arch/m32r/kernel/ptrace.c +++ b/arch/m32r/kernel/ptrace.c | |||
| @@ -756,7 +756,7 @@ do_ptrace(long request, struct task_struct *child, long addr, long data) | |||
| 756 | return ret; | 756 | return ret; |
| 757 | } | 757 | } |
| 758 | 758 | ||
| 759 | asmlinkage int sys_ptrace(long request, long pid, long addr, long data) | 759 | asmlinkage long sys_ptrace(long request, long pid, long addr, long data) |
| 760 | { | 760 | { |
| 761 | struct task_struct *child; | 761 | struct task_struct *child; |
| 762 | int ret; | 762 | int ret; |
diff --git a/arch/m32r/kernel/setup.c b/arch/m32r/kernel/setup.c index ec5674727e7f..f722ec8eb021 100644 --- a/arch/m32r/kernel/setup.c +++ b/arch/m32r/kernel/setup.c | |||
| @@ -305,19 +305,19 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
| 305 | 305 | ||
| 306 | seq_printf(m, "processor\t: %ld\n", cpu); | 306 | seq_printf(m, "processor\t: %ld\n", cpu); |
| 307 | 307 | ||
| 308 | #ifdef CONFIG_CHIP_VDEC2 | 308 | #if defined(CONFIG_CHIP_VDEC2) |
| 309 | seq_printf(m, "cpu family\t: VDEC2\n" | 309 | seq_printf(m, "cpu family\t: VDEC2\n" |
| 310 | "cache size\t: Unknown\n"); | 310 | "cache size\t: Unknown\n"); |
| 311 | #elif CONFIG_CHIP_M32700 | 311 | #elif defined(CONFIG_CHIP_M32700) |
| 312 | seq_printf(m,"cpu family\t: M32700\n" | 312 | seq_printf(m,"cpu family\t: M32700\n" |
| 313 | "cache size\t: I-8KB/D-8KB\n"); | 313 | "cache size\t: I-8KB/D-8KB\n"); |
| 314 | #elif CONFIG_CHIP_M32102 | 314 | #elif defined(CONFIG_CHIP_M32102) |
| 315 | seq_printf(m,"cpu family\t: M32102\n" | 315 | seq_printf(m,"cpu family\t: M32102\n" |
| 316 | "cache size\t: I-8KB\n"); | 316 | "cache size\t: I-8KB\n"); |
| 317 | #elif CONFIG_CHIP_OPSP | 317 | #elif defined(CONFIG_CHIP_OPSP) |
| 318 | seq_printf(m,"cpu family\t: OPSP\n" | 318 | seq_printf(m,"cpu family\t: OPSP\n" |
| 319 | "cache size\t: I-8KB/D-8KB\n"); | 319 | "cache size\t: I-8KB/D-8KB\n"); |
| 320 | #elif CONFIG_CHIP_MP | 320 | #elif defined(CONFIG_CHIP_MP) |
| 321 | seq_printf(m, "cpu family\t: M32R-MP\n" | 321 | seq_printf(m, "cpu family\t: M32R-MP\n" |
| 322 | "cache size\t: I-xxKB/D-xxKB\n"); | 322 | "cache size\t: I-xxKB/D-xxKB\n"); |
| 323 | #else | 323 | #else |
| @@ -326,19 +326,19 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
| 326 | seq_printf(m, "bogomips\t: %lu.%02lu\n", | 326 | seq_printf(m, "bogomips\t: %lu.%02lu\n", |
| 327 | c->loops_per_jiffy/(500000/HZ), | 327 | c->loops_per_jiffy/(500000/HZ), |
| 328 | (c->loops_per_jiffy/(5000/HZ)) % 100); | 328 | (c->loops_per_jiffy/(5000/HZ)) % 100); |
| 329 | #ifdef CONFIG_PLAT_MAPPI | 329 | #if defined(CONFIG_PLAT_MAPPI) |
| 330 | seq_printf(m, "Machine\t\t: Mappi Evaluation board\n"); | 330 | seq_printf(m, "Machine\t\t: Mappi Evaluation board\n"); |
| 331 | #elif CONFIG_PLAT_MAPPI2 | 331 | #elif defined(CONFIG_PLAT_MAPPI2) |
| 332 | seq_printf(m, "Machine\t\t: Mappi-II Evaluation board\n"); | 332 | seq_printf(m, "Machine\t\t: Mappi-II Evaluation board\n"); |
| 333 | #elif CONFIG_PLAT_MAPPI3 | 333 | #elif defined(CONFIG_PLAT_MAPPI3) |
| 334 | seq_printf(m, "Machine\t\t: Mappi-III Evaluation board\n"); | 334 | seq_printf(m, "Machine\t\t: Mappi-III Evaluation board\n"); |
| 335 | #elif CONFIG_PLAT_M32700UT | 335 | #elif defined(CONFIG_PLAT_M32700UT) |
| 336 | seq_printf(m, "Machine\t\t: M32700UT Evaluation board\n"); | 336 | seq_printf(m, "Machine\t\t: M32700UT Evaluation board\n"); |
| 337 | #elif CONFIG_PLAT_OPSPUT | 337 | #elif defined(CONFIG_PLAT_OPSPUT) |
| 338 | seq_printf(m, "Machine\t\t: OPSPUT Evaluation board\n"); | 338 | seq_printf(m, "Machine\t\t: OPSPUT Evaluation board\n"); |
| 339 | #elif CONFIG_PLAT_USRV | 339 | #elif defined(CONFIG_PLAT_USRV) |
| 340 | seq_printf(m, "Machine\t\t: uServer\n"); | 340 | seq_printf(m, "Machine\t\t: uServer\n"); |
| 341 | #elif CONFIG_PLAT_OAKS32R | 341 | #elif defined(CONFIG_PLAT_OAKS32R) |
| 342 | seq_printf(m, "Machine\t\t: OAKS32R\n"); | 342 | seq_printf(m, "Machine\t\t: OAKS32R\n"); |
| 343 | #else | 343 | #else |
| 344 | seq_printf(m, "Machine\t\t: Unknown\n"); | 344 | seq_printf(m, "Machine\t\t: Unknown\n"); |
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index 539c562cd54d..2ebce2063fea 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c | |||
| @@ -39,10 +39,6 @@ extern void send_IPI_allbutself(int, int); | |||
| 39 | extern void smp_local_timer_interrupt(struct pt_regs *); | 39 | extern void smp_local_timer_interrupt(struct pt_regs *); |
| 40 | #endif | 40 | #endif |
| 41 | 41 | ||
| 42 | u64 jiffies_64 = INITIAL_JIFFIES; | ||
| 43 | |||
| 44 | EXPORT_SYMBOL(jiffies_64); | ||
| 45 | |||
| 46 | extern unsigned long wall_jiffies; | 42 | extern unsigned long wall_jiffies; |
| 47 | #define TICK_SIZE (tick_nsec / 1000) | 43 | #define TICK_SIZE (tick_nsec / 1000) |
| 48 | 44 | ||
diff --git a/arch/m32r/lib/csum_partial_copy.c b/arch/m32r/lib/csum_partial_copy.c index ddb16a83a8ce..3d5f06145854 100644 --- a/arch/m32r/lib/csum_partial_copy.c +++ b/arch/m32r/lib/csum_partial_copy.c | |||
| @@ -18,10 +18,10 @@ | |||
| 18 | 18 | ||
| 19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
| 20 | #include <linux/types.h> | 20 | #include <linux/types.h> |
| 21 | #include <linux/string.h> | ||
| 21 | 22 | ||
| 22 | #include <net/checksum.h> | 23 | #include <net/checksum.h> |
| 23 | #include <asm/byteorder.h> | 24 | #include <asm/byteorder.h> |
| 24 | #include <asm/string.h> | ||
| 25 | #include <asm/uaccess.h> | 25 | #include <asm/uaccess.h> |
| 26 | 26 | ||
| 27 | /* | 27 | /* |
diff --git a/arch/m32r/mm/init.c b/arch/m32r/mm/init.c index d9a40b1fe8ba..6facf15b04f3 100644 --- a/arch/m32r/mm/init.c +++ b/arch/m32r/mm/init.c | |||
| @@ -48,6 +48,8 @@ void show_mem(void) | |||
| 48 | show_free_areas(); | 48 | show_free_areas(); |
| 49 | printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); | 49 | printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); |
| 50 | for_each_pgdat(pgdat) { | 50 | for_each_pgdat(pgdat) { |
| 51 | unsigned long flags; | ||
| 52 | pgdat_resize_lock(pgdat, &flags); | ||
| 51 | for (i = 0; i < pgdat->node_spanned_pages; ++i) { | 53 | for (i = 0; i < pgdat->node_spanned_pages; ++i) { |
| 52 | page = pgdat_page_nr(pgdat, i); | 54 | page = pgdat_page_nr(pgdat, i); |
| 53 | total++; | 55 | total++; |
| @@ -60,6 +62,7 @@ void show_mem(void) | |||
| 60 | else if (page_count(page)) | 62 | else if (page_count(page)) |
| 61 | shared += page_count(page) - 1; | 63 | shared += page_count(page) - 1; |
| 62 | } | 64 | } |
| 65 | pgdat_resize_unlock(pgdat, &flags); | ||
| 63 | } | 66 | } |
| 64 | printk("%d pages of RAM\n", total); | 67 | printk("%d pages of RAM\n", total); |
| 65 | printk("%d pages of HIGHMEM\n",highmem); | 68 | printk("%d pages of HIGHMEM\n",highmem); |
| @@ -150,10 +153,14 @@ int __init reservedpages_count(void) | |||
| 150 | int reservedpages, nid, i; | 153 | int reservedpages, nid, i; |
| 151 | 154 | ||
| 152 | reservedpages = 0; | 155 | reservedpages = 0; |
| 153 | for_each_online_node(nid) | 156 | for_each_online_node(nid) { |
| 157 | unsigned long flags; | ||
| 158 | pgdat_resize_lock(NODE_DATA(nid), &flags); | ||
| 154 | for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) | 159 | for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) |
| 155 | if (PageReserved(nid_page_nr(nid, i))) | 160 | if (PageReserved(nid_page_nr(nid, i))) |
| 156 | reservedpages++; | 161 | reservedpages++; |
| 162 | pgdat_resize_unlock(NODE_DATA(nid), &flags); | ||
| 163 | } | ||
| 157 | 164 | ||
| 158 | return reservedpages; | 165 | return reservedpages; |
| 159 | } | 166 | } |
diff --git a/arch/m32r/mm/ioremap.c b/arch/m32r/mm/ioremap.c index 70c59055c19c..a151849a605e 100644 --- a/arch/m32r/mm/ioremap.c +++ b/arch/m32r/mm/ioremap.c | |||
| @@ -67,7 +67,7 @@ remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size, | |||
| 67 | if (address >= end) | 67 | if (address >= end) |
| 68 | BUG(); | 68 | BUG(); |
| 69 | do { | 69 | do { |
| 70 | pte_t * pte = pte_alloc_kernel(&init_mm, pmd, address); | 70 | pte_t * pte = pte_alloc_kernel(pmd, address); |
| 71 | if (!pte) | 71 | if (!pte) |
| 72 | return -ENOMEM; | 72 | return -ENOMEM; |
| 73 | remap_area_pte(pte, address, end - address, address + phys_addr, flags); | 73 | remap_area_pte(pte, address, end - address, address + phys_addr, flags); |
| @@ -90,7 +90,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, | |||
| 90 | flush_cache_all(); | 90 | flush_cache_all(); |
| 91 | if (address >= end) | 91 | if (address >= end) |
| 92 | BUG(); | 92 | BUG(); |
| 93 | spin_lock(&init_mm.page_table_lock); | ||
| 94 | do { | 93 | do { |
| 95 | pmd_t *pmd; | 94 | pmd_t *pmd; |
| 96 | pmd = pmd_alloc(&init_mm, dir, address); | 95 | pmd = pmd_alloc(&init_mm, dir, address); |
| @@ -104,7 +103,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, | |||
| 104 | address = (address + PGDIR_SIZE) & PGDIR_MASK; | 103 | address = (address + PGDIR_SIZE) & PGDIR_MASK; |
| 105 | dir++; | 104 | dir++; |
| 106 | } while (address && (address < end)); | 105 | } while (address && (address < end)); |
| 107 | spin_unlock(&init_mm.page_table_lock); | ||
| 108 | flush_tlb_all(); | 106 | flush_tlb_all(); |
| 109 | return error; | 107 | return error; |
| 110 | } | 108 | } |
