Commit 9dec17eb authored by David Howells's avatar David Howells Committed by Linus Torvalds
Browse files

[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: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 1aeb21d6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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 */
+0 −5
Original line number Diff line number Diff line
@@ -26,11 +26,6 @@

#include "local.h"

void (*pm_power_off)(void);
EXPORT_SYMBOL(pm_power_off);

extern void frv_change_cmode(int);

/*
 * Debug macros
 */
+4 −0
Original line number Diff line number Diff line
@@ -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);
+8 −3
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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,