Commit 4fbca532 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] arch/arm/kernel/dma-isa.c: named initializers
  [ARM] 3527/1: MPCore Boot Lockup Fix
  [ARM] arch/arm/kernel/process.c: Fix warning
  [ARM] 3526/1: ioremap should use vunmap instead of vfree on ARM
  [ARM] 3524/1: ARM EABI: more 64-bit aligned stack fixes
  [ARM] 3517/1: move definition of PROC_INFO_SZ from procinfo.h to asm-offsets.h
parents 509b70b6 3170a5e8
...@@ -99,6 +99,8 @@ int main(void) ...@@ -99,6 +99,8 @@ int main(void)
DEFINE(MACHINFO_NAME, offsetof(struct machine_desc, name)); DEFINE(MACHINFO_NAME, offsetof(struct machine_desc, name));
DEFINE(MACHINFO_PHYSIO, offsetof(struct machine_desc, phys_io)); DEFINE(MACHINFO_PHYSIO, offsetof(struct machine_desc, phys_io));
DEFINE(MACHINFO_PGOFFIO, offsetof(struct machine_desc, io_pg_offst)); DEFINE(MACHINFO_PGOFFIO, offsetof(struct machine_desc, io_pg_offst));
BLANK();
DEFINE(PROC_INFO_SZ, sizeof(struct proc_info_list));
DEFINE(PROCINFO_INITFUNC, offsetof(struct proc_info_list, __cpu_flush)); DEFINE(PROCINFO_INITFUNC, offsetof(struct proc_info_list, __cpu_flush));
DEFINE(PROCINFO_MMUFLAGS, offsetof(struct proc_info_list, __cpu_mmu_flags)); DEFINE(PROCINFO_MMUFLAGS, offsetof(struct proc_info_list, __cpu_mmu_flags));
return 0; return 0;
......
...@@ -143,12 +143,23 @@ static struct dma_ops isa_dma_ops = { ...@@ -143,12 +143,23 @@ static struct dma_ops isa_dma_ops = {
.residue = isa_get_dma_residue, .residue = isa_get_dma_residue,
}; };
static struct resource dma_resources[] = { static struct resource dma_resources[] = { {
{ "dma1", 0x0000, 0x000f }, .name = "dma1",
{ "dma low page", 0x0080, 0x008f }, .start = 0x0000,
{ "dma2", 0x00c0, 0x00df }, .end = 0x000f
{ "dma high page", 0x0480, 0x048f } }, {
}; .name = "dma low page",
.start = 0x0080,
.end = 0x008f
}, {
.name = "dma2",
.start = 0x00c0,
.end = 0x00df
}, {
.name = "dma high page",
.start = 0x0480,
.end = 0x048f
} };
void __init isa_init_dma(dma_t *dma) void __init isa_init_dma(dma_t *dma)
{ {
......
...@@ -311,7 +311,7 @@ void free_thread_info(struct thread_info *thread) ...@@ -311,7 +311,7 @@ void free_thread_info(struct thread_info *thread)
struct thread_info_list *th = &get_cpu_var(thread_info_list); struct thread_info_list *th = &get_cpu_var(thread_info_list);
if (th->nr < EXTRA_TASK_STRUCT) { if (th->nr < EXTRA_TASK_STRUCT) {
unsigned long *p = (unsigned long *)thread; unsigned long *p = (unsigned long *)thread;
p[0] = th->head; p[0] = (unsigned long)th->head;
th->head = p; th->head = p;
th->nr += 1; th->nr += 1;
put_cpu_var(thread_info_list); put_cpu_var(thread_info_list);
......
...@@ -122,7 +122,7 @@ ENTRY(c_backtrace) ...@@ -122,7 +122,7 @@ ENTRY(c_backtrace)
#define reg r5 #define reg r5
#define stack r6 #define stack r6
.Ldumpstm: stmfd sp!, {instr, reg, stack, r7, lr} .Ldumpstm: stmfd sp!, {instr, reg, stack, r7, r8, lr}
mov stack, r0 mov stack, r0
mov instr, r1 mov instr, r1
mov reg, #9 mov reg, #9
...@@ -145,7 +145,7 @@ ENTRY(c_backtrace) ...@@ -145,7 +145,7 @@ ENTRY(c_backtrace)
adrne r0, .Lcr adrne r0, .Lcr
blne printk blne printk
mov r0, stack mov r0, stack
LOADREGS(fd, sp!, {instr, reg, stack, r7, pc}) LOADREGS(fd, sp!, {instr, reg, stack, r7, r8, pc})
.Lfp: .asciz " r%d = %08X%c" .Lfp: .asciz " r%d = %08X%c"
.Lcr: .asciz "\n" .Lcr: .asciz "\n"
......
...@@ -189,12 +189,12 @@ ENTRY(__do_div64) ...@@ -189,12 +189,12 @@ ENTRY(__do_div64)
moveq pc, lr moveq pc, lr
@ Division by 0: @ Division by 0:
str lr, [sp, #-4]! str lr, [sp, #-8]!
bl __div0 bl __div0
@ as wrong as it could be... @ as wrong as it could be...
mov yl, #0 mov yl, #0
mov yh, #0 mov yh, #0
mov xh, #0 mov xh, #0
ldr pc, [sp], #4 ldr pc, [sp], #8
...@@ -137,8 +137,11 @@ static struct amba_device *amba_devs[] __initdata = { ...@@ -137,8 +137,11 @@ static struct amba_device *amba_devs[] __initdata = {
static void __init gic_init_irq(void) static void __init gic_init_irq(void)
{ {
#ifdef CONFIG_REALVIEW_MPCORE #ifdef CONFIG_REALVIEW_MPCORE
unsigned int pldctrl;
writel(0x0000a05f, __io_address(REALVIEW_SYS_LOCK)); writel(0x0000a05f, __io_address(REALVIEW_SYS_LOCK));
writel(0x008003c0, __io_address(REALVIEW_SYS_BASE) + 0xd8); pldctrl = readl(__io_address(REALVIEW_SYS_BASE) + 0xd8);
pldctrl |= 0x00800000; /* New irq mode */
writel(pldctrl, __io_address(REALVIEW_SYS_BASE) + 0xd8);
writel(0x00000000, __io_address(REALVIEW_SYS_LOCK)); writel(0x00000000, __io_address(REALVIEW_SYS_LOCK));
#endif #endif
gic_dist_init(__io_address(REALVIEW_GIC_DIST_BASE)); gic_dist_init(__io_address(REALVIEW_GIC_DIST_BASE));
......
...@@ -141,7 +141,7 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size, ...@@ -141,7 +141,7 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size,
return NULL; return NULL;
addr = (unsigned long)area->addr; addr = (unsigned long)area->addr;
if (remap_area_pages(addr, pfn, size, flags)) { if (remap_area_pages(addr, pfn, size, flags)) {
vfree((void *)addr); vunmap((void *)addr);
return NULL; return NULL;
} }
return (void __iomem *) (offset + (char *)addr); return (void __iomem *) (offset + (char *)addr);
...@@ -173,7 +173,7 @@ EXPORT_SYMBOL(__ioremap); ...@@ -173,7 +173,7 @@ EXPORT_SYMBOL(__ioremap);
void __iounmap(void __iomem *addr) void __iounmap(void __iomem *addr)
{ {
vfree((void *) (PAGE_MASK & (unsigned long) addr)); vunmap((void *)(PAGE_MASK & (unsigned long)addr));
} }
EXPORT_SYMBOL(__iounmap); EXPORT_SYMBOL(__iounmap);
......
...@@ -45,8 +45,6 @@ extern unsigned int elf_hwcap; ...@@ -45,8 +45,6 @@ extern unsigned int elf_hwcap;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#define PROC_INFO_SZ 48
#define HWCAP_SWP 1 #define HWCAP_SWP 1
#define HWCAP_HALF 2 #define HWCAP_HALF 2
#define HWCAP_THUMB 4 #define HWCAP_THUMB 4
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment