aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2006-07-10 07:44:51 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-10 16:24:21 -0400
commit9dec17eb577169f78d642c5424e4264186d27115 (patch)
tree76cff4c5a8a6d255bc457392057e775d71ff5532
parent1aeb21d626327ee909fef03f72aea6e8a60e6c0c (diff)
[PATCH] FRV: Fix FRV arch compile errors
Fix some FRV arch compile errors, including: (*) Marking nr_kernel_pages as __meminitdata so that references to it end up being properly calculated rather than being assumed to be in the small data section (and thus calculated wrt the GP register). Not doing this causes the linker to emit errors as the offset is too big to fit into the load instruction. (*) Move pm_power_off into an unconditionally compiled .c file as it's now unconditionally accessed. (*) Declare frv_change_cmode() in a header file rather than in a .c file, and declare it asmlinkage. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/frv/kernel/local.h3
-rw-r--r--arch/frv/kernel/pm.c5
-rw-r--r--arch/frv/kernel/process.c4
-rw-r--r--arch/frv/mb93090-mb00/pci-vdk.c11
-rw-r--r--include/linux/bootmem.h2
5 files changed, 16 insertions, 9 deletions
diff --git a/arch/frv/kernel/local.h b/arch/frv/kernel/local.h
index e9471761d78b..76606d13b1aa 100644
--- a/arch/frv/kernel/local.h
+++ b/arch/frv/kernel/local.h
@@ -51,6 +51,9 @@ extern void (*__power_switch_wake_cleanup)(void);
51/* time.c */ 51/* time.c */
52extern void time_divisor_init(void); 52extern void time_divisor_init(void);
53 53
54/* cmode.S */
55extern asmlinkage void frv_change_cmode(int);
56
54 57
55#endif /* __ASSEMBLY__ */ 58#endif /* __ASSEMBLY__ */
56#endif /* _FRV_LOCAL_H */ 59#endif /* _FRV_LOCAL_H */
diff --git a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c
index e65a9f1c0c26..c1d9fc8f1a85 100644
--- a/arch/frv/kernel/pm.c
+++ b/arch/frv/kernel/pm.c
@@ -26,11 +26,6 @@
26 26
27#include "local.h" 27#include "local.h"
28 28
29void (*pm_power_off)(void);
30EXPORT_SYMBOL(pm_power_off);
31
32extern void frv_change_cmode(int);
33
34/* 29/*
35 * Debug macros 30 * Debug macros
36 */ 31 */
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c
index eeeb1e2641d5..ecdeafb2fdce 100644
--- a/arch/frv/kernel/process.c
+++ b/arch/frv/kernel/process.c
@@ -10,6 +10,7 @@
10 * 2 of the License, or (at your option) any later version. 10 * 2 of the License, or (at your option) any later version.
11 */ 11 */
12 12
13#include <linux/module.h>
13#include <linux/errno.h> 14#include <linux/errno.h>
14#include <linux/sched.h> 15#include <linux/sched.h>
15#include <linux/kernel.h> 16#include <linux/kernel.h>
@@ -38,6 +39,9 @@ asmlinkage void ret_from_fork(void);
38 39
39#include <asm/pgalloc.h> 40#include <asm/pgalloc.h>
40 41
42void (*pm_power_off)(void);
43EXPORT_SYMBOL(pm_power_off);
44
41struct task_struct *alloc_task_struct(void) 45struct task_struct *alloc_task_struct(void)
42{ 46{
43 struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL); 47 struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL);
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index fb98e90c5794..f7279d78995a 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -406,7 +406,9 @@ int __init pcibios_init(void)
406 ioport_resource.end = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff; 406 ioport_resource.end = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff;
407 ioport_resource.end += ioport_resource.start; 407 ioport_resource.end += ioport_resource.start;
408 408
409 printk("PCI IO window: %08lx-%08lx\n", ioport_resource.start, ioport_resource.end); 409 printk("PCI IO window: %08llx-%08llx\n",
410 (unsigned long long) ioport_resource.start,
411 (unsigned long long) ioport_resource.end);
410 412
411 iomem_resource.start = (__reg_MB86943_sl_pci_mem_base << 9) & 0xfffffc00; 413 iomem_resource.start = (__reg_MB86943_sl_pci_mem_base << 9) & 0xfffffc00;
412 414
@@ -416,8 +418,11 @@ int __init pcibios_init(void)
416 iomem_resource.end = (__reg_MB86943_sl_pci_mem_range << 9) | 0x3ff; 418 iomem_resource.end = (__reg_MB86943_sl_pci_mem_range << 9) | 0x3ff;
417 iomem_resource.end += iomem_resource.start; 419 iomem_resource.end += iomem_resource.start;
418 420
419 printk("PCI MEM window: %08lx-%08lx\n", iomem_resource.start, iomem_resource.end); 421 printk("PCI MEM window: %08llx-%08llx\n",
420 printk("PCI DMA memory: %08lx-%08lx\n", dma_coherent_mem_start, dma_coherent_mem_end); 422 (unsigned long long) iomem_resource.start,
423 (unsigned long long) iomem_resource.end);
424 printk("PCI DMA memory: %08lx-%08lx\n",
425 dma_coherent_mem_start, dma_coherent_mem_end);
421 426
422 if (!pci_probe) 427 if (!pci_probe)
423 return -ENXIO; 428 return -ENXIO;
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index 22866fa2d960..1021f508d82c 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -91,7 +91,7 @@ static inline void *alloc_remap(int nid, unsigned long size)
91} 91}
92#endif 92#endif
93 93
94extern unsigned long nr_kernel_pages; 94extern unsigned long __meminitdata nr_kernel_pages;
95extern unsigned long nr_all_pages; 95extern unsigned long nr_all_pages;
96 96
97extern void *__init alloc_large_system_hash(const char *tablename, 97extern void *__init alloc_large_system_hash(const char *tablename,