[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>
This commit is contained in:
parent
1aeb21d626
commit
9dec17eb57
5 changed files with 16 additions and 9 deletions
|
@ -51,6 +51,9 @@ extern void (*__power_switch_wake_cleanup)(void);
|
||||||
/* time.c */
|
/* time.c */
|
||||||
extern void time_divisor_init(void);
|
extern void time_divisor_init(void);
|
||||||
|
|
||||||
|
/* cmode.S */
|
||||||
|
extern asmlinkage void frv_change_cmode(int);
|
||||||
|
|
||||||
|
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
#endif /* _FRV_LOCAL_H */
|
#endif /* _FRV_LOCAL_H */
|
||||||
|
|
|
@ -26,11 +26,6 @@
|
||||||
|
|
||||||
#include "local.h"
|
#include "local.h"
|
||||||
|
|
||||||
void (*pm_power_off)(void);
|
|
||||||
EXPORT_SYMBOL(pm_power_off);
|
|
||||||
|
|
||||||
extern void frv_change_cmode(int);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Debug macros
|
* Debug macros
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
* 2 of the License, or (at your option) any later version.
|
* 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/module.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -38,6 +39,9 @@ asmlinkage void ret_from_fork(void);
|
||||||
|
|
||||||
#include <asm/pgalloc.h>
|
#include <asm/pgalloc.h>
|
||||||
|
|
||||||
|
void (*pm_power_off)(void);
|
||||||
|
EXPORT_SYMBOL(pm_power_off);
|
||||||
|
|
||||||
struct task_struct *alloc_task_struct(void)
|
struct task_struct *alloc_task_struct(void)
|
||||||
{
|
{
|
||||||
struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL);
|
struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL);
|
||||||
|
|
|
@ -406,7 +406,9 @@ int __init pcibios_init(void)
|
||||||
ioport_resource.end = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff;
|
ioport_resource.end = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff;
|
||||||
ioport_resource.end += ioport_resource.start;
|
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;
|
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 = (__reg_MB86943_sl_pci_mem_range << 9) | 0x3ff;
|
||||||
iomem_resource.end += iomem_resource.start;
|
iomem_resource.end += iomem_resource.start;
|
||||||
|
|
||||||
printk("PCI MEM window: %08lx-%08lx\n", iomem_resource.start, iomem_resource.end);
|
printk("PCI MEM window: %08llx-%08llx\n",
|
||||||
printk("PCI DMA memory: %08lx-%08lx\n", dma_coherent_mem_start, dma_coherent_mem_end);
|
(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)
|
if (!pci_probe)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
|
|
@ -91,7 +91,7 @@ static inline void *alloc_remap(int nid, unsigned long size)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern unsigned long nr_kernel_pages;
|
extern unsigned long __meminitdata nr_kernel_pages;
|
||||||
extern unsigned long nr_all_pages;
|
extern unsigned long nr_all_pages;
|
||||||
|
|
||||||
extern void *__init alloc_large_system_hash(const char *tablename,
|
extern void *__init alloc_large_system_hash(const char *tablename,
|
||||||
|
|
Loading…
Reference in a new issue