Loading arch/arm/common/dmabounce.c +5 −13 Original line number Diff line number Diff line Loading @@ -93,15 +93,12 @@ static void print_alloc_stats(struct dmabounce_device_info *device_info) static inline struct dmabounce_device_info * find_dmabounce_dev(struct device *dev) { struct list_head *entry; list_for_each(entry, &dmabounce_devs) { struct dmabounce_device_info *d = list_entry(entry, struct dmabounce_device_info, node); struct dmabounce_device_info *d; list_for_each_entry(d, &dmabounce_devs, node) if (d->dev == dev) return d; } return NULL; } Loading Loading @@ -172,15 +169,11 @@ alloc_safe_buffer(struct dmabounce_device_info *device_info, void *ptr, static inline struct safe_buffer * find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_addr) { struct list_head *entry; list_for_each(entry, &device_info->safe_buffers) { struct safe_buffer *b = list_entry(entry, struct safe_buffer, node); struct safe_buffer *b; list_for_each_entry(b, &device_info->safe_buffers, node) if (b->safe_dma_addr == safe_dma_addr) return b; } return NULL; } Loading Loading @@ -301,7 +294,6 @@ unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr), buf->safe, (void *) buf->safe_dma_addr); DO_STATS ( device_info->bounce_count++ ); if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { Loading arch/arm/common/sa1111.c +7 −6 Original line number Diff line number Diff line Loading @@ -721,16 +721,17 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) return ret; } static int sa1111_remove_one(struct device *dev, void *data) { device_unregister(dev); return 0; } static void __sa1111_remove(struct sa1111 *sachip) { struct list_head *l, *n; void __iomem *irqbase = sachip->base + SA1111_INTC; list_for_each_safe(l, n, &sachip->dev->children) { struct device *d = list_to_dev(l); device_unregister(d); } device_for_each_child(sachip->dev, NULL, sa1111_remove_one); /* disable all IRQs */ sa1111_writel(0, irqbase + SA1111_INTEN0); Loading arch/arm/kernel/setup.c +16 −9 Original line number Diff line number Diff line Loading @@ -395,6 +395,20 @@ static void __init early_initrd(char **p) } __early_param("initrd=", early_initrd); static void __init add_memory(unsigned long start, unsigned long size) { /* * Ensure that start/size are aligned to a page boundary. * Size is appropriately rounded down, start is rounded up. */ size -= start & ~PAGE_MASK; meminfo.bank[meminfo.nr_banks].start = PAGE_ALIGN(start); meminfo.bank[meminfo.nr_banks].size = size & PAGE_MASK; meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(start); meminfo.nr_banks += 1; } /* * Pick out the memory size. We look for mem=size@start, * where start and size are "size[KkMm]" Loading @@ -419,10 +433,7 @@ static void __init early_mem(char **p) if (**p == '@') start = memparse(*p + 1, p); meminfo.bank[meminfo.nr_banks].start = start; meminfo.bank[meminfo.nr_banks].size = size; meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(start); meminfo.nr_banks += 1; add_memory(start, size); } __early_param("mem=", early_mem); Loading Loading @@ -564,11 +575,7 @@ static int __init parse_tag_mem32(const struct tag *tag) tag->u.mem.start, tag->u.mem.size / 1024); return -EINVAL; } meminfo.bank[meminfo.nr_banks].start = tag->u.mem.start; meminfo.bank[meminfo.nr_banks].size = tag->u.mem.size; meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(tag->u.mem.start); meminfo.nr_banks += 1; add_memory(tag->u.mem.start, tag->u.mem.size); return 0; } Loading arch/arm/kernel/signal.c +19 −10 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <asm/unistd.h> #include "ptrace.h" #include "signal.h" #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) Loading @@ -35,7 +36,7 @@ #define SWI_THUMB_SIGRETURN (0xdf00 << 16 | 0x2700 | (__NR_sigreturn - __NR_SYSCALL_BASE)) #define SWI_THUMB_RT_SIGRETURN (0xdf00 << 16 | 0x2700 | (__NR_rt_sigreturn - __NR_SYSCALL_BASE)) static const unsigned long retcodes[4] = { const unsigned long sigreturn_codes[4] = { SWI_SYS_SIGRETURN, SWI_THUMB_SIGRETURN, SWI_SYS_RT_SIGRETURN, SWI_THUMB_RT_SIGRETURN }; Loading Loading @@ -500,9 +501,16 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka, if (ka->sa.sa_flags & SA_SIGINFO) idx += 2; if (__put_user(retcodes[idx], rc)) if (__put_user(sigreturn_codes[idx], rc)) return 1; if (cpsr & MODE32_BIT) { /* * 32-bit code can use the new high-page * signal return code support. */ retcode = KERN_SIGRETURN_CODE + (idx << 2) + thumb; } else { /* * Ensure that the instruction cache sees * the return code written onto the stack. Loading @@ -512,6 +520,7 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka, retcode = ((unsigned long)rc) + thumb; } } regs->ARM_r0 = usig; regs->ARM_sp = (unsigned long)frame; Loading arch/arm/kernel/signal.h 0 → 100644 +12 −0 Original line number Diff line number Diff line /* * linux/arch/arm/kernel/signal.h * * Copyright (C) 2005 Russell King. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #define KERN_SIGRETURN_CODE 0xffff0500 extern const unsigned long sigreturn_codes[4]; Loading
arch/arm/common/dmabounce.c +5 −13 Original line number Diff line number Diff line Loading @@ -93,15 +93,12 @@ static void print_alloc_stats(struct dmabounce_device_info *device_info) static inline struct dmabounce_device_info * find_dmabounce_dev(struct device *dev) { struct list_head *entry; list_for_each(entry, &dmabounce_devs) { struct dmabounce_device_info *d = list_entry(entry, struct dmabounce_device_info, node); struct dmabounce_device_info *d; list_for_each_entry(d, &dmabounce_devs, node) if (d->dev == dev) return d; } return NULL; } Loading Loading @@ -172,15 +169,11 @@ alloc_safe_buffer(struct dmabounce_device_info *device_info, void *ptr, static inline struct safe_buffer * find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_addr) { struct list_head *entry; list_for_each(entry, &device_info->safe_buffers) { struct safe_buffer *b = list_entry(entry, struct safe_buffer, node); struct safe_buffer *b; list_for_each_entry(b, &device_info->safe_buffers, node) if (b->safe_dma_addr == safe_dma_addr) return b; } return NULL; } Loading Loading @@ -301,7 +294,6 @@ unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr), buf->safe, (void *) buf->safe_dma_addr); DO_STATS ( device_info->bounce_count++ ); if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { Loading
arch/arm/common/sa1111.c +7 −6 Original line number Diff line number Diff line Loading @@ -721,16 +721,17 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) return ret; } static int sa1111_remove_one(struct device *dev, void *data) { device_unregister(dev); return 0; } static void __sa1111_remove(struct sa1111 *sachip) { struct list_head *l, *n; void __iomem *irqbase = sachip->base + SA1111_INTC; list_for_each_safe(l, n, &sachip->dev->children) { struct device *d = list_to_dev(l); device_unregister(d); } device_for_each_child(sachip->dev, NULL, sa1111_remove_one); /* disable all IRQs */ sa1111_writel(0, irqbase + SA1111_INTEN0); Loading
arch/arm/kernel/setup.c +16 −9 Original line number Diff line number Diff line Loading @@ -395,6 +395,20 @@ static void __init early_initrd(char **p) } __early_param("initrd=", early_initrd); static void __init add_memory(unsigned long start, unsigned long size) { /* * Ensure that start/size are aligned to a page boundary. * Size is appropriately rounded down, start is rounded up. */ size -= start & ~PAGE_MASK; meminfo.bank[meminfo.nr_banks].start = PAGE_ALIGN(start); meminfo.bank[meminfo.nr_banks].size = size & PAGE_MASK; meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(start); meminfo.nr_banks += 1; } /* * Pick out the memory size. We look for mem=size@start, * where start and size are "size[KkMm]" Loading @@ -419,10 +433,7 @@ static void __init early_mem(char **p) if (**p == '@') start = memparse(*p + 1, p); meminfo.bank[meminfo.nr_banks].start = start; meminfo.bank[meminfo.nr_banks].size = size; meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(start); meminfo.nr_banks += 1; add_memory(start, size); } __early_param("mem=", early_mem); Loading Loading @@ -564,11 +575,7 @@ static int __init parse_tag_mem32(const struct tag *tag) tag->u.mem.start, tag->u.mem.size / 1024); return -EINVAL; } meminfo.bank[meminfo.nr_banks].start = tag->u.mem.start; meminfo.bank[meminfo.nr_banks].size = tag->u.mem.size; meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(tag->u.mem.start); meminfo.nr_banks += 1; add_memory(tag->u.mem.start, tag->u.mem.size); return 0; } Loading
arch/arm/kernel/signal.c +19 −10 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <asm/unistd.h> #include "ptrace.h" #include "signal.h" #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) Loading @@ -35,7 +36,7 @@ #define SWI_THUMB_SIGRETURN (0xdf00 << 16 | 0x2700 | (__NR_sigreturn - __NR_SYSCALL_BASE)) #define SWI_THUMB_RT_SIGRETURN (0xdf00 << 16 | 0x2700 | (__NR_rt_sigreturn - __NR_SYSCALL_BASE)) static const unsigned long retcodes[4] = { const unsigned long sigreturn_codes[4] = { SWI_SYS_SIGRETURN, SWI_THUMB_SIGRETURN, SWI_SYS_RT_SIGRETURN, SWI_THUMB_RT_SIGRETURN }; Loading Loading @@ -500,9 +501,16 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka, if (ka->sa.sa_flags & SA_SIGINFO) idx += 2; if (__put_user(retcodes[idx], rc)) if (__put_user(sigreturn_codes[idx], rc)) return 1; if (cpsr & MODE32_BIT) { /* * 32-bit code can use the new high-page * signal return code support. */ retcode = KERN_SIGRETURN_CODE + (idx << 2) + thumb; } else { /* * Ensure that the instruction cache sees * the return code written onto the stack. Loading @@ -512,6 +520,7 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka, retcode = ((unsigned long)rc) + thumb; } } regs->ARM_r0 = usig; regs->ARM_sp = (unsigned long)frame; Loading
arch/arm/kernel/signal.h 0 → 100644 +12 −0 Original line number Diff line number Diff line /* * linux/arch/arm/kernel/signal.h * * Copyright (C) 2005 Russell King. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #define KERN_SIGRETURN_CODE 0xffff0500 extern const unsigned long sigreturn_codes[4];