[PATCH] FRV: Fix FRV arch compile errors
authorDavid Howells <dhowells@redhat.com>
Mon, 10 Jul 2006 11:44:51 +0000 (04:44 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 10 Jul 2006 20:24:21 +0000 (13:24 -0700)
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>
arch/frv/kernel/local.h
arch/frv/kernel/pm.c
arch/frv/kernel/process.c
arch/frv/mb93090-mb00/pci-vdk.c
include/linux/bootmem.h

index e9471761d78b8f50aef19201086f9e8819bb1bb7..76606d13b1aad1d9957fbc5a2fbef62e6cac2e16 100644 (file)
@@ -51,6 +51,9 @@ extern void (*__power_switch_wake_cleanup)(void);
 /* time.c */
 extern void time_divisor_init(void);
 
+/* cmode.S */
+extern asmlinkage void frv_change_cmode(int);
+
 
 #endif /* __ASSEMBLY__ */
 #endif /* _FRV_LOCAL_H */
index e65a9f1c0c26d56f4e5a35a2f258419d2149e6d4..c1d9fc8f1a859f8d365abbcfc6efc2949bf2e092 100644 (file)
 
 #include "local.h"
 
-void (*pm_power_off)(void);
-EXPORT_SYMBOL(pm_power_off);
-
-extern void frv_change_cmode(int);
-
 /*
  * Debug macros
  */
index eeeb1e2641d5b49e14a1f760ea90001d75273a45..ecdeafb2fdcee2e7cf5aecf38d54e2ad5ff6bbd3 100644 (file)
@@ -10,6 +10,7 @@
  * 2 of the License, or (at your option) any later version.
  */
 
+#include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
@@ -38,6 +39,9 @@ asmlinkage void ret_from_fork(void);
 
 #include <asm/pgalloc.h>
 
+void (*pm_power_off)(void);
+EXPORT_SYMBOL(pm_power_off);
+
 struct task_struct *alloc_task_struct(void)
 {
        struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL);
index fb98e90c57941a4ff9141489c5d2f396ff4814d0..f7279d78995a8580157f2a77f25a124009f50ce6 100644 (file)
@@ -406,7 +406,9 @@ int __init pcibios_init(void)
        ioport_resource.end     = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff;
        ioport_resource.end     += ioport_resource.start;
 
-       printk("PCI IO window:  %08lx-%08lx\n", ioport_resource.start, ioport_resource.end);
+       printk("PCI IO window:  %08llx-%08llx\n",
+              (unsigned long long) ioport_resource.start,
+              (unsigned long long) ioport_resource.end);
 
        iomem_resource.start    = (__reg_MB86943_sl_pci_mem_base << 9) & 0xfffffc00;
 
@@ -416,8 +418,11 @@ int __init pcibios_init(void)
        iomem_resource.end      = (__reg_MB86943_sl_pci_mem_range << 9) | 0x3ff;
        iomem_resource.end      += iomem_resource.start;
 
-       printk("PCI MEM window: %08lx-%08lx\n", iomem_resource.start, iomem_resource.end);
-       printk("PCI DMA memory: %08lx-%08lx\n", dma_coherent_mem_start, dma_coherent_mem_end);
+       printk("PCI MEM window: %08llx-%08llx\n",
+              (unsigned long long) iomem_resource.start,
+              (unsigned long long) iomem_resource.end);
+       printk("PCI DMA memory: %08lx-%08lx\n",
+              dma_coherent_mem_start, dma_coherent_mem_end);
 
        if (!pci_probe)
                return -ENXIO;
index 22866fa2d9600675b702fbf90b004b00b117c1c8..1021f508d82cee1e2577582e100ce9f9abe259b4 100644 (file)
@@ -91,7 +91,7 @@ static inline void *alloc_remap(int nid, unsigned long size)
 }
 #endif
 
-extern unsigned long nr_kernel_pages;
+extern unsigned long __meminitdata nr_kernel_pages;
 extern unsigned long nr_all_pages;
 
 extern void *__init alloc_large_system_hash(const char *tablename,