diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 20:19:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 20:19:28 -0400 |
commit | 532bfc851a7475fb6a36c1e953aa395798a7cca7 (patch) | |
tree | a7892e5a31330dd59f31959efbe9fda1803784fd /arch/arm/kernel | |
parent | 0195c00244dc2e9f522475868fa278c473ba7339 (diff) | |
parent | 8da00edc1069f01c34510fa405dc15d96c090a3f (diff) |
Merge branch 'akpm' (Andrew's patch-bomb)
Merge third batch of patches from Andrew Morton:
- Some MM stragglers
- core SMP library cleanups (on_each_cpu_mask)
- Some IPI optimisations
- kexec
- kdump
- IPMI
- the radix-tree iterator work
- various other misc bits.
"That'll do for -rc1. I still have ~10 patches for 3.4, will send
those along when they've baked a little more."
* emailed from Andrew Morton <akpm@linux-foundation.org>: (35 commits)
backlight: fix typo in tosa_lcd.c
crc32: add help text for the algorithm select option
mm: move hugepage test examples to tools/testing/selftests/vm
mm: move slabinfo.c to tools/vm
mm: move page-types.c from Documentation to tools/vm
selftests/Makefile: make `run_tests' depend on `all'
selftests: launch individual selftests from the main Makefile
radix-tree: use iterators in find_get_pages* functions
radix-tree: rewrite gang lookup using iterator
radix-tree: introduce bit-optimized iterator
fs/proc/namespaces.c: prevent crash when ns_entries[] is empty
nbd: rename the nbd_device variable from lo to nbd
pidns: add reboot_pid_ns() to handle the reboot syscall
sysctl: use bitmap library functions
ipmi: use locks on watchdog timeout set on reboot
ipmi: simplify locking
ipmi: fix message handling during panics
ipmi: use a tasklet for handling received messages
ipmi: increase KCS timeouts
ipmi: decrease the IPMI message transaction time in interrupt mode
...
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/smp_tlb.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/arch/arm/kernel/smp_tlb.c b/arch/arm/kernel/smp_tlb.c index 7dcb35285be7..02c5d2ce23bf 100644 --- a/arch/arm/kernel/smp_tlb.c +++ b/arch/arm/kernel/smp_tlb.c | |||
@@ -13,18 +13,6 @@ | |||
13 | #include <asm/smp_plat.h> | 13 | #include <asm/smp_plat.h> |
14 | #include <asm/tlbflush.h> | 14 | #include <asm/tlbflush.h> |
15 | 15 | ||
16 | static void on_each_cpu_mask(void (*func)(void *), void *info, int wait, | ||
17 | const struct cpumask *mask) | ||
18 | { | ||
19 | preempt_disable(); | ||
20 | |||
21 | smp_call_function_many(mask, func, info, wait); | ||
22 | if (cpumask_test_cpu(smp_processor_id(), mask)) | ||
23 | func(info); | ||
24 | |||
25 | preempt_enable(); | ||
26 | } | ||
27 | |||
28 | /**********************************************************************/ | 16 | /**********************************************************************/ |
29 | 17 | ||
30 | /* | 18 | /* |
@@ -87,7 +75,7 @@ void flush_tlb_all(void) | |||
87 | void flush_tlb_mm(struct mm_struct *mm) | 75 | void flush_tlb_mm(struct mm_struct *mm) |
88 | { | 76 | { |
89 | if (tlb_ops_need_broadcast()) | 77 | if (tlb_ops_need_broadcast()) |
90 | on_each_cpu_mask(ipi_flush_tlb_mm, mm, 1, mm_cpumask(mm)); | 78 | on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1); |
91 | else | 79 | else |
92 | local_flush_tlb_mm(mm); | 80 | local_flush_tlb_mm(mm); |
93 | } | 81 | } |
@@ -98,7 +86,8 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) | |||
98 | struct tlb_args ta; | 86 | struct tlb_args ta; |
99 | ta.ta_vma = vma; | 87 | ta.ta_vma = vma; |
100 | ta.ta_start = uaddr; | 88 | ta.ta_start = uaddr; |
101 | on_each_cpu_mask(ipi_flush_tlb_page, &ta, 1, mm_cpumask(vma->vm_mm)); | 89 | on_each_cpu_mask(mm_cpumask(vma->vm_mm), ipi_flush_tlb_page, |
90 | &ta, 1); | ||
102 | } else | 91 | } else |
103 | local_flush_tlb_page(vma, uaddr); | 92 | local_flush_tlb_page(vma, uaddr); |
104 | } | 93 | } |
@@ -121,7 +110,8 @@ void flush_tlb_range(struct vm_area_struct *vma, | |||
121 | ta.ta_vma = vma; | 110 | ta.ta_vma = vma; |
122 | ta.ta_start = start; | 111 | ta.ta_start = start; |
123 | ta.ta_end = end; | 112 | ta.ta_end = end; |
124 | on_each_cpu_mask(ipi_flush_tlb_range, &ta, 1, mm_cpumask(vma->vm_mm)); | 113 | on_each_cpu_mask(mm_cpumask(vma->vm_mm), ipi_flush_tlb_range, |
114 | &ta, 1); | ||
125 | } else | 115 | } else |
126 | local_flush_tlb_range(vma, start, end); | 116 | local_flush_tlb_range(vma, start, end); |
127 | } | 117 | } |