History

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64

Pull arm64 changes from Catalin Marinas: "arm64 fixes: - Use swiotlb_init() instead of swiotlb_init_with_default_size(). The latter is now a static function (commit 74838b75379a "swiotlb: add the late swiotlb initialization function with iotlb memory"). - Enable interrupts before calling do_notify_resume(). arm64 clean-up: - Use the generic implementation of compat_sys_sendfile() on arm64 as commit 8f9c0119d7ba (introducing the function) has been merged." * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: arm64: Enable interrupts before calling do_notify_resume() arm64: Use the generic compat_sys_sendfile() implementation arm64: Call swiotlb_init() instead of swiotlb_init_with_default_size()

Linus Torvalds committed 14 years ago

Commit b5356a12 parents 3c5af8d 6916fd06 files · +6 −28Browse files

Unified · Split

6 files
  1. arch/arm64/include/asm/unistd32.h +1 −0
  2. arch/arm64/kernel/entry.S +1 −0
  3. arch/arm64/kernel/sys_compat.c +0 −20
  4. arch/arm64/mm/dma-mapping.c +2 −4
  5. arch/arm64/mm/init.c +1 −4
  6. arch/arm64/mm/mm.h +1 −0
arch/arm64/include/asm/unistd32.h+1−0
@@ -752,3 +752,4 @@ __SYSCALL(__NR_syncfs, sys_syncfs) · 751 unmodified lines
752#define __ARCH_WANT_SYS_SIGPENDING752#define __ARCH_WANT_SYS_SIGPENDING
753#define __ARCH_WANT_SYS_SIGPROCMASK753#define __ARCH_WANT_SYS_SIGPROCMASK
754#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND754#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
755#define __ARCH_WANT_COMPAT_SYS_SENDFILE
arch/arm64/kernel/entry.S+1−0
@@ -583,6 +583,7 @@ work_pending: · 582 unmodified lines
583 mov x0, sp // 'regs'583 mov x0, sp // 'regs'
584 tst x2, #PSR_MODE_MASK // user mode regs?584 tst x2, #PSR_MODE_MASK // user mode regs?
585 b.ne no_work_pending // returning to kernel585 b.ne no_work_pending // returning to kernel
586 enable_irq // enable interrupts for do_notify_resume()
586 bl do_notify_resume587 bl do_notify_resume
587 b ret_to_user588 b ret_to_user
588work_resched:589work_resched:
arch/arm64/kernel/sys_compat.c+0−20
@@ -84,26 +84,6 @@ asmlinkage int compat_sys_sched_rr_get_interval(compat_pid_t pid, · 83 unmodified lines
84 return ret;84 return ret;
85}85}
86 86
87asmlinkage int compat_sys_sendfile(int out_fd, int in_fd,
88 compat_off_t __user *offset, s32 count)
89{
90 mm_segment_t old_fs = get_fs();
91 int ret;
92 off_t of;
93
94 if (offset && get_user(of, offset))
95 return -EFAULT;
96
97 set_fs(KERNEL_DS);
98 ret = sys_sendfile(out_fd, in_fd, offset ? (off_t __user *)&of : NULL,
99 count);
100 set_fs(old_fs);
101
102 if (offset && put_user(of, offset))
103 return -EFAULT;
104 return ret;
105}
106
107static inline void87static inline void
108do_compat_cache_op(unsigned long start, unsigned long end, int flags)88do_compat_cache_op(unsigned long start, unsigned long end, int flags)
109{89{
arch/arm64/mm/dma-mapping.c+2−4
@@ -61,12 +61,10 @@ static struct dma_map_ops arm64_swiotlb_dma_ops = { · 60 unmodified lines
61 .mapping_error = swiotlb_dma_mapping_error,61 .mapping_error = swiotlb_dma_mapping_error,
62};62};
63 63
64void __init swiotlb_init_with_default_size(size_t default_size, int verbose);64void __init arm64_swiotlb_init(void)
65
66void __init arm64_swiotlb_init(size_t max_size)
67{65{
68 dma_ops = &arm64_swiotlb_dma_ops;66 dma_ops = &arm64_swiotlb_dma_ops;
69 swiotlb_init_with_default_size(min((size_t)SZ_64M, max_size), 1);67 swiotlb_init(1);
70}68}
71 69
72#define PREALLOC_DMA_DEBUG_ENTRIES 409670#define PREALLOC_DMA_DEBUG_ENTRIES 4096
arch/arm64/mm/init.c+1−4
@@ -301,10 +301,7 @@ void __init mem_init(void) · 300 unmodified lines
301 unsigned long reserved_pages, free_pages;301 unsigned long reserved_pages, free_pages;
302 struct memblock_region *reg;302 struct memblock_region *reg;
303 303
304#if CONFIG_SWIOTLB304 arm64_swiotlb_init();
305 extern void __init arm64_swiotlb_init(size_t max_size);
306 arm64_swiotlb_init(max_pfn << (PAGE_SHIFT - 1));
307#endif
308 305
309 max_mapnr = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;306 max_mapnr = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;
310 307
arch/arm64/mm/mm.h+1−0
@@ -1,2 +1,3 @@
1extern void __flush_dcache_page(struct page *page);1extern void __flush_dcache_page(struct page *page);
2extern void __init bootmem_init(void);2extern void __init bootmem_init(void);
3extern void __init arm64_swiotlb_init(void);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t