<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/arch/arm/kernel/smp.c, branch v2.6.35</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Merge branch 'devel-stable' into devel</title>
<updated>2010-05-17T16:24:04+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2010-05-17T16:24:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ac1d426e825ab5778995f2f6f053ca2e6b45c622'/>
<id>ac1d426e825ab5778995f2f6f053ca2e6b45c622</id>
<content type='text'>
Conflicts:
	arch/arm/Kconfig
	arch/arm/include/asm/system.h
	arch/arm/mm/Kconfig
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	arch/arm/Kconfig
	arch/arm/include/asm/system.h
	arch/arm/mm/Kconfig
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: rename mach_cpu_disable() to platform_cpu_disable()</title>
<updated>2010-05-15T14:03:51+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2010-05-15T09:18:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8e2a43f5f5e1255879064924917fb1a6e5be7cb3'/>
<id>8e2a43f5f5e1255879064924917fb1a6e5be7cb3</id>
<content type='text'>
Consistently name all SMP platform related functions.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Consistently name all SMP platform related functions.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: 6066/1: Fix "BUG: scheduling while atomic: swapper/0/0x00000002</title>
<updated>2010-05-01T10:32:57+00:00</updated>
<author>
<name>Santosh Shilimkar</name>
<email>santosh.shilimkar@ti.com</email>
</author>
<published>2010-04-30T05:51:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=13ea9cc82138691856d7cd855dff9aef1479adb9'/>
<id>13ea9cc82138691856d7cd855dff9aef1479adb9</id>
<content type='text'>
This patch fixes the preempt leak in the cpuidle path invoked from
cpu-hotplug. The fix is suggested by Russell King and is based
on x86 idea of calling init_idle() on the idle task when it's
re-used which also resets the preempt count amongst other things

dump:
BUG: scheduling while atomic: swapper/0/0x00000002
Modules linked in:
Backtrace:
[&lt;c0024f90&gt;] (dump_backtrace+0x0/0x110) from [&lt;c0173bc4&gt;] (dump_stack+0x18/0x1c)
 r7:c02149e4 r6:c033df00 r5:c7836000 r4:00000000
[&lt;c0173bac&gt;] (dump_stack+0x0/0x1c) from [&lt;c003b4f0&gt;] (__schedule_bug+0x60/0x70)
[&lt;c003b490&gt;] (__schedule_bug+0x0/0x70) from [&lt;c0174214&gt;] (schedule+0x98/0x7b8)
 r5:c7836000 r4:c7836000
[&lt;c017417c&gt;] (schedule+0x0/0x7b8) from [&lt;c00228c4&gt;] (cpu_idle+0xb4/0xd4)
# [&lt;c0022810&gt;] (cpu_idle+0x0/0xd4) from [&lt;c0171dd8&gt;] (secondary_start_kernel+0xe0/0xf0)
 r5:c7836000 r4:c0205f40
[&lt;c0171cf8&gt;] (secondary_start_kernel+0x0/0xf0) from [&lt;c002d57c&gt;] (prm_rmw_mod_reg_bits+0x88/0xa4)
 r7:c02149e4 r6:00000001 r5:00000001 r4:c7836000
Backtrace aborted due to bad frame pointer &lt;c7837fbc&gt;

Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes the preempt leak in the cpuidle path invoked from
cpu-hotplug. The fix is suggested by Russell King and is based
on x86 idea of calling init_idle() on the idle task when it's
re-used which also resets the preempt count amongst other things

dump:
BUG: scheduling while atomic: swapper/0/0x00000002
Modules linked in:
Backtrace:
[&lt;c0024f90&gt;] (dump_backtrace+0x0/0x110) from [&lt;c0173bc4&gt;] (dump_stack+0x18/0x1c)
 r7:c02149e4 r6:c033df00 r5:c7836000 r4:00000000
[&lt;c0173bac&gt;] (dump_stack+0x0/0x1c) from [&lt;c003b4f0&gt;] (__schedule_bug+0x60/0x70)
[&lt;c003b490&gt;] (__schedule_bug+0x0/0x70) from [&lt;c0174214&gt;] (schedule+0x98/0x7b8)
 r5:c7836000 r4:c7836000
[&lt;c017417c&gt;] (schedule+0x0/0x7b8) from [&lt;c00228c4&gt;] (cpu_idle+0xb4/0xd4)
# [&lt;c0022810&gt;] (cpu_idle+0x0/0xd4) from [&lt;c0171dd8&gt;] (secondary_start_kernel+0xe0/0xf0)
 r5:c7836000 r4:c0205f40
[&lt;c0171cf8&gt;] (secondary_start_kernel+0x0/0xf0) from [&lt;c002d57c&gt;] (prm_rmw_mod_reg_bits+0x88/0xa4)
 r7:c02149e4 r6:00000001 r5:00000001 r4:c7836000
Backtrace aborted due to bad frame pointer &lt;c7837fbc&gt;

Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: Add L2 cache handling to smp boot support</title>
<updated>2010-03-14T19:42:35+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2010-02-12T14:36:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1027247f6eb727db6c600b9eb02796f0766ae704'/>
<id>1027247f6eb727db6c600b9eb02796f0766ae704</id>
<content type='text'>
The page table and secondary data which we're asking the secondary CPU
to make use of has to hit RAM to ensure that the secondary CPU can see
it since it may not be taking part in coherency or cache searches at
this point.

Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The page table and secondary data which we're asking the secondary CPU
to make use of has to hit RAM to ensure that the secondary CPU can see
it since it may not be taking part in coherency or cache searches at
this point.

Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: Fix __cpuexit section mismatch warnings</title>
<updated>2009-09-28T17:06:21+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2009-09-27T20:04:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=90140c30a7b8c77e8872a389d48678d78e58789f'/>
<id>90140c30a7b8c77e8872a389d48678d78e58789f</id>
<content type='text'>
Fix:

WARNING: vmlinux.o(.text+0x247c): Section mismatch in reference from the function cpu_idle() to the function .cpuexit.text:cpu_die()
The function cpu_idle() references a function in an exit section.
Often the function cpu_die() has valid usage outside the exit section
and the fix is to remove the __cpuexit annotation of cpu_die.

WARNING: vmlinux.o(.cpuexit.text+0x3c): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
The function __cpuexit cpu_die() references
a function __cpuinit secondary_start_kernel().
This is often seen when error handling in the exit function
uses functionality in the init path.
The fix is often to remove the __cpuinit annotation of
secondary_start_kernel() so it may be used outside an init section.

Sam says:
&gt; The annotation of cpu_die() is wrong.
&gt; To be annotated __cpuexit the function shall:
&gt; - be used in exit context and only in exit context with HOTPLUG_CPU=n
&gt; - be used outside exit context with HOTPLUG_CPU=y

So, this also means __cpu_disable(), __cpu_die() and twd_timer_stop() are
also wrong.  However, removing __cpuexit from cpu_die() creates:

WARNING: vmlinux.o(.text+0x6834): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
The function cpu_die() references
the function __cpuinit secondary_start_kernel().
This is often because cpu_die lacks a __cpuinit
annotation or the annotation of secondary_start_kernel is wrong.

so fix this using __ref.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix:

WARNING: vmlinux.o(.text+0x247c): Section mismatch in reference from the function cpu_idle() to the function .cpuexit.text:cpu_die()
The function cpu_idle() references a function in an exit section.
Often the function cpu_die() has valid usage outside the exit section
and the fix is to remove the __cpuexit annotation of cpu_die.

WARNING: vmlinux.o(.cpuexit.text+0x3c): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
The function __cpuexit cpu_die() references
a function __cpuinit secondary_start_kernel().
This is often seen when error handling in the exit function
uses functionality in the init path.
The fix is often to remove the __cpuinit annotation of
secondary_start_kernel() so it may be used outside an init section.

Sam says:
&gt; The annotation of cpu_die() is wrong.
&gt; To be annotated __cpuexit the function shall:
&gt; - be used in exit context and only in exit context with HOTPLUG_CPU=n
&gt; - be used outside exit context with HOTPLUG_CPU=y

So, this also means __cpu_disable(), __cpu_die() and twd_timer_stop() are
also wrong.  However, removing __cpuexit from cpu_die() creates:

WARNING: vmlinux.o(.text+0x6834): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
The function cpu_die() references
the function __cpuinit secondary_start_kernel().
This is often because cpu_die lacks a __cpuinit
annotation or the annotation of secondary_start_kernel is wrong.

so fix this using __ref.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: Don't allow highmem on SMP platforms without h/w TLB ops broadcast</title>
<updated>2009-09-28T17:06:20+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2009-09-27T19:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e616c591405c168f6dc3dfd1221e105adfe49b8d'/>
<id>e616c591405c168f6dc3dfd1221e105adfe49b8d</id>
<content type='text'>
We suffer an unfortunate combination of "features" which makes highmem
support on platforms without hardware TLB maintainence broadcast difficult:

- we need kmap_high_get() support for DMA cache coherence
- this requires kmap_high() to take a spinlock with IRQs disabled
- kmap_high() occasionally calls flush_all_zero_pkmaps() to clear
  out old mappings
- flush_all_zero_pkmaps() calls flush_tlb_kernel_range(), which
  on s/w IPI'd systems eventually calls smp_call_function_many()
- smp_call_function_many() must not be called with IRQs disabled:

WARNING: at kernel/smp.c:380 smp_call_function_many+0xc4/0x240()
Modules linked in:
Backtrace:
[&lt;c00306f0&gt;] (dump_backtrace+0x0/0x108) from [&lt;c0286e6c&gt;] (dump_stack+0x18/0x1c)
 r6:c007cd18 r5:c02ff228 r4:0000017c
[&lt;c0286e54&gt;] (dump_stack+0x0/0x1c) from [&lt;c0053e08&gt;] (warn_slowpath_common+0x50/0x80)
[&lt;c0053db8&gt;] (warn_slowpath_common+0x0/0x80) from [&lt;c0053e50&gt;] (warn_slowpath_null+0x18/0x1c)
 r7:00000003 r6:00000001 r5:c1ff4000 r4:c035fa34
[&lt;c0053e38&gt;] (warn_slowpath_null+0x0/0x1c) from [&lt;c007cd18&gt;] (smp_call_function_many+0xc4/0x240)
[&lt;c007cc54&gt;] (smp_call_function_many+0x0/0x240) from [&lt;c007cec0&gt;] (smp_call_function+0x2c/0x38)
[&lt;c007ce94&gt;] (smp_call_function+0x0/0x38) from [&lt;c005980c&gt;] (on_each_cpu+0x1c/0x38)
[&lt;c00597f0&gt;] (on_each_cpu+0x0/0x38) from [&lt;c0031788&gt;] (flush_tlb_kernel_range+0x50/0x58)
 r6:00000001 r5:00000800 r4:c05f3590
[&lt;c0031738&gt;] (flush_tlb_kernel_range+0x0/0x58) from [&lt;c009c600&gt;] (flush_all_zero_pkmaps+0xc0/0xe8)
[&lt;c009c540&gt;] (flush_all_zero_pkmaps+0x0/0xe8) from [&lt;c009c6b4&gt;] (kmap_high+0x8c/0x1e0)
[&lt;c009c628&gt;] (kmap_high+0x0/0x1e0) from [&lt;c00364a8&gt;] (kmap+0x44/0x5c)
[&lt;c0036464&gt;] (kmap+0x0/0x5c) from [&lt;c0109dfc&gt;] (cramfs_readpage+0x3c/0x194)
[&lt;c0109dc0&gt;] (cramfs_readpage+0x0/0x194) from [&lt;c0090c14&gt;] (__do_page_cache_readahead+0x1f0/0x290)
[&lt;c0090a24&gt;] (__do_page_cache_readahead+0x0/0x290) from [&lt;c0090ce4&gt;] (ra_submit+0x30/0x38)
[&lt;c0090cb4&gt;] (ra_submit+0x0/0x38) from [&lt;c0089384&gt;] (filemap_fault+0x3dc/0x438)
 r4:c1819988
[&lt;c0088fa8&gt;] (filemap_fault+0x0/0x438) from [&lt;c009d21c&gt;] (__do_fault+0x58/0x43c)
[&lt;c009d1c4&gt;] (__do_fault+0x0/0x43c) from [&lt;c009e8cc&gt;] (handle_mm_fault+0x104/0x318)
[&lt;c009e7c8&gt;] (handle_mm_fault+0x0/0x318) from [&lt;c0033c98&gt;] (do_page_fault+0x188/0x1e4)
[&lt;c0033b10&gt;] (do_page_fault+0x0/0x1e4) from [&lt;c0033ddc&gt;] (do_translation_fault+0x7c/0x84)
[&lt;c0033d60&gt;] (do_translation_fault+0x0/0x84) from [&lt;c002b474&gt;] (do_DataAbort+0x40/0xa4)
 r8:c1ff5e20 r7:c0340120 r6:00000805 r5:c1ff5e54 r4:c03400d0
[&lt;c002b434&gt;] (do_DataAbort+0x0/0xa4) from [&lt;c002bcac&gt;] (__dabt_svc+0x4c/0x60)
...

So we disable highmem support on these systems.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We suffer an unfortunate combination of "features" which makes highmem
support on platforms without hardware TLB maintainence broadcast difficult:

- we need kmap_high_get() support for DMA cache coherence
- this requires kmap_high() to take a spinlock with IRQs disabled
- kmap_high() occasionally calls flush_all_zero_pkmaps() to clear
  out old mappings
- flush_all_zero_pkmaps() calls flush_tlb_kernel_range(), which
  on s/w IPI'd systems eventually calls smp_call_function_many()
- smp_call_function_many() must not be called with IRQs disabled:

WARNING: at kernel/smp.c:380 smp_call_function_many+0xc4/0x240()
Modules linked in:
Backtrace:
[&lt;c00306f0&gt;] (dump_backtrace+0x0/0x108) from [&lt;c0286e6c&gt;] (dump_stack+0x18/0x1c)
 r6:c007cd18 r5:c02ff228 r4:0000017c
[&lt;c0286e54&gt;] (dump_stack+0x0/0x1c) from [&lt;c0053e08&gt;] (warn_slowpath_common+0x50/0x80)
[&lt;c0053db8&gt;] (warn_slowpath_common+0x0/0x80) from [&lt;c0053e50&gt;] (warn_slowpath_null+0x18/0x1c)
 r7:00000003 r6:00000001 r5:c1ff4000 r4:c035fa34
[&lt;c0053e38&gt;] (warn_slowpath_null+0x0/0x1c) from [&lt;c007cd18&gt;] (smp_call_function_many+0xc4/0x240)
[&lt;c007cc54&gt;] (smp_call_function_many+0x0/0x240) from [&lt;c007cec0&gt;] (smp_call_function+0x2c/0x38)
[&lt;c007ce94&gt;] (smp_call_function+0x0/0x38) from [&lt;c005980c&gt;] (on_each_cpu+0x1c/0x38)
[&lt;c00597f0&gt;] (on_each_cpu+0x0/0x38) from [&lt;c0031788&gt;] (flush_tlb_kernel_range+0x50/0x58)
 r6:00000001 r5:00000800 r4:c05f3590
[&lt;c0031738&gt;] (flush_tlb_kernel_range+0x0/0x58) from [&lt;c009c600&gt;] (flush_all_zero_pkmaps+0xc0/0xe8)
[&lt;c009c540&gt;] (flush_all_zero_pkmaps+0x0/0xe8) from [&lt;c009c6b4&gt;] (kmap_high+0x8c/0x1e0)
[&lt;c009c628&gt;] (kmap_high+0x0/0x1e0) from [&lt;c00364a8&gt;] (kmap+0x44/0x5c)
[&lt;c0036464&gt;] (kmap+0x0/0x5c) from [&lt;c0109dfc&gt;] (cramfs_readpage+0x3c/0x194)
[&lt;c0109dc0&gt;] (cramfs_readpage+0x0/0x194) from [&lt;c0090c14&gt;] (__do_page_cache_readahead+0x1f0/0x290)
[&lt;c0090a24&gt;] (__do_page_cache_readahead+0x0/0x290) from [&lt;c0090ce4&gt;] (ra_submit+0x30/0x38)
[&lt;c0090cb4&gt;] (ra_submit+0x0/0x38) from [&lt;c0089384&gt;] (filemap_fault+0x3dc/0x438)
 r4:c1819988
[&lt;c0088fa8&gt;] (filemap_fault+0x0/0x438) from [&lt;c009d21c&gt;] (__do_fault+0x58/0x43c)
[&lt;c009d1c4&gt;] (__do_fault+0x0/0x43c) from [&lt;c009e8cc&gt;] (handle_mm_fault+0x104/0x318)
[&lt;c009e7c8&gt;] (handle_mm_fault+0x0/0x318) from [&lt;c0033c98&gt;] (do_page_fault+0x188/0x1e4)
[&lt;c0033b10&gt;] (do_page_fault+0x0/0x1e4) from [&lt;c0033ddc&gt;] (do_translation_fault+0x7c/0x84)
[&lt;c0033d60&gt;] (do_translation_fault+0x0/0x84) from [&lt;c002b474&gt;] (do_DataAbort+0x40/0xa4)
 r8:c1ff5e20 r7:c0340120 r6:00000805 r5:c1ff5e54 r4:c03400d0
[&lt;c002b434&gt;] (do_DataAbort+0x0/0xa4) from [&lt;c002bcac&gt;] (__dabt_svc+0x4c/0x60)
...

So we disable highmem support on these systems.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cpumask: use mm_cpumask() wrapper: arm</title>
<updated>2009-09-24T00:04:49+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2009-09-24T15:34:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=56f8ba83a52b9f9e3711eff8e54168ac14aa288f'/>
<id>56f8ba83a52b9f9e3711eff8e54168ac14aa288f</id>
<content type='text'>
Makes code futureproof against the impending change to mm-&gt;cpu_vm_mask.

It's also a chance to use the new cpumask_ ops which take a pointer
(the older ones are deprecated, but there's no hurry for arch code).

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Makes code futureproof against the impending change to mm-&gt;cpu_vm_mask.

It's also a chance to use the new cpumask_ ops which take a pointer
(the older ones are deprecated, but there's no hurry for arch code).

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 into devel</title>
<updated>2009-06-11T14:35:00+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk@dyn-67.arm.linux.org.uk</email>
</author>
<published>2009-06-11T14:35:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=42578c82e0f1810a07ebe29cb05e874893243d8c'/>
<id>42578c82e0f1810a07ebe29cb05e874893243d8c</id>
<content type='text'>
Conflicts:
	arch/arm/Kconfig
	arch/arm/kernel/smp.c
	arch/arm/mach-realview/Makefile
	arch/arm/mach-realview/platsmp.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	arch/arm/Kconfig
	arch/arm/kernel/smp.c
	arch/arm/mach-realview/Makefile
	arch/arm/mach-realview/platsmp.c
</pre>
</div>
</content>
</entry>
<entry>
<title>Check whether the TLB operations need broadcasting on SMP systems</title>
<updated>2009-05-30T13:00:14+00:00</updated>
<author>
<name>Catalin Marinas</name>
<email>catalin.marinas@arm.com</email>
</author>
<published>2009-05-30T13:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=faa7bc51c11d5bbe440ac04710fd7a3208782000'/>
<id>faa7bc51c11d5bbe440ac04710fd7a3208782000</id>
<content type='text'>
ARMv7 SMP hardware can handle the TLB maintenance operations
broadcasting in hardware so that the software can avoid the costly IPIs.
This patch adds the necessary checks (the MMFR3 CPUID register) to avoid
the broadcasting if already supported by the hardware.

(this patch is based on the work done by Tony Thompson @ ARM)

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ARMv7 SMP hardware can handle the TLB maintenance operations
broadcasting in hardware so that the software can avoid the costly IPIs.
This patch adds the necessary checks (the MMFR3 CPUID register) to avoid
the broadcasting if already supported by the hardware.

(this patch is based on the work done by Tony Thompson @ ARM)

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] smp: use new cpumask functions</title>
<updated>2009-05-28T13:16:52+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk@dyn-67.arm.linux.org.uk</email>
</author>
<published>2009-05-28T13:16:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e03cdade0ca945a04e982525e50fef275190b77b'/>
<id>e03cdade0ca945a04e982525e50fef275190b77b</id>
<content type='text'>
Convert cpu_*_mask bit twiddling to the new set_cpu_*() API.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Convert cpu_*_mask bit twiddling to the new set_cpu_*() API.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
