<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch, branch v3.0.44</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch?h=v3.0.44</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch?h=v3.0.44'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-10-02T16:47:55Z</updated>
<entry>
<title>ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+</title>
<updated>2012-10-02T16:47:55Z</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2012-07-13T18:15:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=54d4d42b2558d2053519852dfef7ded62775e058'/>
<id>urn:sha1:54d4d42b2558d2053519852dfef7ded62775e058</id>
<content type='text'>
commit a76d7bd96d65fa5119adba97e1b58d95f2e78829 upstream.

The open-coded mutex implementation for ARMv6+ cores suffers from a
severe lack of barriers, so in the uncontended case we don't actually
protect any accesses performed during the critical section.

Furthermore, the code is largely a duplication of the ARMv6+ atomic_dec
code but optimised to remove a branch instruction, as the mutex fastpath
was previously inlined. Now that this is executed out-of-line, we can
reuse the atomic access code for the locking (in fact, we use the xchg
code as this produces shorter critical sections).

This patch uses the generic xchg based implementation for mutexes on
ARMv6+, which introduces barriers to the lock/unlock operations and also
has the benefit of removing a fair amount of inline assembly code.

Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
Reported-by: Shan Kang &lt;kangshan0910@gmail.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>MCE: Fix vm86 handling for 32bit mce handler</title>
<updated>2012-10-02T16:47:55Z</updated>
<author>
<name>Andi Kleen</name>
<email>andi@firstfloor.org</email>
</author>
<published>2010-11-19T12:16:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8ef8fa7479fff9313387b873413f5ae233a2bd04'/>
<id>urn:sha1:8ef8fa7479fff9313387b873413f5ae233a2bd04</id>
<content type='text'>
commit a129a7c84582629741e5fa6f40026efcd7a65bd4 upstream.

When running on 32bit the mce handler could misinterpret
vm86 mode as ring 0. This can affect whether it does recovery
or not; it was possible to panic when recovery was actually
possible.

Fix this by always forcing vm86 to look like ring 3.

[ Backport to 3.0 notes:
Things changed there slightly:
   - move mce_get_rip() up. It fills up m-&gt;cs and m-&gt;ip values which
     are evaluated in mce_severity(). Therefore move it up right before
     the mce_severity call. This seem to be another bug in 3.0?
   - Place the backport (fix m-&gt;cs in V86 case) to where m-&gt;cs gets
     filled which is mce_get_rip() in 3.0
]

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
Reviewed-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>x86: Fix boot on Twinhead H12Y</title>
<updated>2012-10-02T16:47:41Z</updated>
<author>
<name>Alan Cox</name>
<email>alan@linux.intel.com</email>
</author>
<published>2012-05-15T17:44:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b69eba70b90f0d5a058bfd129c94cb98ccc43ef2'/>
<id>urn:sha1:b69eba70b90f0d5a058bfd129c94cb98ccc43ef2</id>
<content type='text'>
commit 80b3e557371205566a71e569fbfcce5b11f92dbe upstream.

Despite lots of investigation into why this is needed we don't
know or have an elegant cure. The only answer found on this
laptop is to mark a problem region as used so that Linux doesn't
put anything there.

Currently all the users add reserve= command lines and anyone
not knowing this needs to find the magic page that documents it.
Automate it instead.

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Tested-and-bugfixed-by: Arne Fitzenreiter &lt;arne@fitzenreiter.de&gt;
Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=10231
Link: http://lkml.kernel.org/r/20120515174347.5109.94551.stgit@bluebook
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ARM: 7532/1: decompressor: reset SCTLR.TRE for VMSA ARMv7 cores</title>
<updated>2012-10-02T16:47:27Z</updated>
<author>
<name>Matthew Leach</name>
<email>matthew.leach@arm.com</email>
</author>
<published>2012-09-11T16:56:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ae9973c90989ac2893398af11b02351d6d623450'/>
<id>urn:sha1:ae9973c90989ac2893398af11b02351d6d623450</id>
<content type='text'>
commit e1e5b7e4251c7538ca08c2c5545b0c2fbd8a6635 upstream.

This patch zeroes the SCTLR.TRE bit prior to setting the mapping as
cacheable for ARMv7 cores in the decompressor, ensuring that the
memory region attributes are obtained from the C and B bits, not from
the page tables.

Cc: Nicolas Pitre &lt;nico@fluxnic.net&gt;
Reviewed-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Matthew Leach &lt;matthew.leach@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ARM: fix bad applied patch for arch/arm/Kconfig of stable 3.0.y tree.</title>
<updated>2012-10-02T16:47:27Z</updated>
<author>
<name>Tetsuyuki Kobayashi</name>
<email>koba@kmckk.co.jp</email>
</author>
<published>2012-09-13T04:29:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b8751608ef925da4b504643236d6e5b6961db7d9'/>
<id>urn:sha1:b8751608ef925da4b504643236d6e5b6961db7d9</id>
<content type='text'>
No upstream commit as this is a merge error in the 3.0 tree.

ARM_ERRATA_764369 and PL310_ERRATA_769419 do not appear in config menu in
stable 3.0.y tree.
This is because backported patch for arm/arm/Kconfig applied wrong place.
This patch solves it.

Signed-off-by: Tetsuyuki Kobayashi &lt;koba@kmckk.co.jp&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>xen/boot: Disable NUMA for PV guests.</title>
<updated>2012-10-02T16:47:26Z</updated>
<author>
<name>Konrad Rzeszutek Wilk</name>
<email>konrad.wilk@oracle.com</email>
</author>
<published>2012-08-17T14:22:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d83fc0bb961f8b4775b30bcee27fe9721da8400c'/>
<id>urn:sha1:d83fc0bb961f8b4775b30bcee27fe9721da8400c</id>
<content type='text'>
commit 8d54db795dfb1049d45dc34f0dddbc5347ec5642 upstream.

The hypervisor is in charge of allocating the proper "NUMA" memory
and dealing with the CPU scheduler to keep them bound to the proper
NUMA node. The PV guests (and PVHVM) have no inkling of where they
run and do not need to know that right now. In the future we will
need to inject NUMA configuration data (if a guest spans two or more
NUMA nodes) so that the kernel can make the right choices. But those
patches are not yet present.

In the meantime, disable the NUMA capability in the PV guest, which
also fixes a bootup issue. Andre says:

"we see Dom0 crashes due to the kernel detecting the NUMA topology not
by ACPI, but directly from the northbridge (CONFIG_AMD_NUMA).

This will detect the actual NUMA config of the physical machine, but
will crash about the mismatch with Dom0's virtual memory. Variation of
the theme: Dom0 sees what it's not supposed to see.

This happens with the said config option enabled and on a machine where
this scanning is still enabled (K8 and Fam10h, not Bulldozer class)

We have this dump then:
NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10
Scanning NUMA topology in Northbridge 24
Number of physical nodes 4
Node 0 MemBase 0000000000000000 Limit 0000000040000000
Node 1 MemBase 0000000040000000 Limit 0000000138000000
Node 2 MemBase 0000000138000000 Limit 00000001f8000000
Node 3 MemBase 00000001f8000000 Limit 0000000238000000
Initmem setup node 0 0000000000000000-0000000040000000
  NODE_DATA [000000003ffd9000 - 000000003fffffff]
Initmem setup node 1 0000000040000000-0000000138000000
  NODE_DATA [0000000137fd9000 - 0000000137ffffff]
Initmem setup node 2 0000000138000000-00000001f8000000
  NODE_DATA [00000001f095e000 - 00000001f0984fff]
Initmem setup node 3 00000001f8000000-0000000238000000
Cannot find 159744 bytes in node 3
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [&lt;ffffffff81d220e6&gt;] __alloc_bootmem_node+0x43/0x96
Pid: 0, comm: swapper Not tainted 3.3.6 #1 AMD Dinar/Dinar
RIP: e030:[&lt;ffffffff81d220e6&gt;]  [&lt;ffffffff81d220e6&gt;] __alloc_bootmem_node+0x43/0x96
.. snip..
  [&lt;ffffffff81d23024&gt;] sparse_early_usemaps_alloc_node+0x64/0x178
  [&lt;ffffffff81d23348&gt;] sparse_init+0xe4/0x25a
  [&lt;ffffffff81d16840&gt;] paging_init+0x13/0x22
  [&lt;ffffffff81d07fbb&gt;] setup_arch+0x9c6/0xa9b
  [&lt;ffffffff81683954&gt;] ? printk+0x3c/0x3e
  [&lt;ffffffff81d01a38&gt;] start_kernel+0xe5/0x468
  [&lt;ffffffff81d012cf&gt;] x86_64_start_reservations+0xba/0xc1
  [&lt;ffffffff81007153&gt;] ? xen_setup_runstate_info+0x2c/0x36
  [&lt;ffffffff81d050ee&gt;] xen_start_kernel+0x565/0x56c
"

so we just disable NUMA scanning by setting numa_off=1.

Reported-and-Tested-by: Andre Przywara &lt;andre.przywara@amd.com&gt;
Acked-by: Andre Przywara &lt;andre.przywara@amd.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts</title>
<updated>2012-10-02T16:47:25Z</updated>
<author>
<name>Mel Gorman</name>
<email>mgorman@suse.de</email>
</author>
<published>2012-08-19T02:41:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5e5369da75bc02e9e0bfdd5c1bb64a70021f1d8b'/>
<id>urn:sha1:5e5369da75bc02e9e0bfdd5c1bb64a70021f1d8b</id>
<content type='text'>
commit 67a806d9499353fabd5b5ff07337f3aa88a1c3ba upstream.

The following build error occurred during an alpha build:

  net/core/sock.c:274:36: error: initializer element is not constant

Dave Anglin says:
&gt; Here is the line in sock.i:
&gt;
&gt; struct static_key memalloc_socks = ((struct static_key) { .enabled =
&gt; ((atomic_t) { (0) }) });

The above line contains two compound literals.  It also uses a designated
initializer to initialize the field enabled.  A compound literal is not a
constant expression.

The location of the above statement isn't fully clear, but if a compound
literal occurs outside the body of a function, the initializer list must
consist of constant expressions.

Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Signed-off-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Michael Cree &lt;mcree@orcon.net.nz&gt;
Acked-by: Matt Turner &lt;mattst88@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>PARISC: Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts</title>
<updated>2012-09-14T17:00:51Z</updated>
<author>
<name>Mel Gorman</name>
<email>mgorman@suse.de</email>
</author>
<published>2012-07-23T11:16:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2b6007fbac1484f788ffffd545d916c10d1fe2e2'/>
<id>urn:sha1:2b6007fbac1484f788ffffd545d916c10d1fe2e2</id>
<content type='text'>
commit bba3d8c3b3c0f2123be5bc687d1cddc13437c923 upstream.

The following build error occured during a parisc build with
swap-over-NFS patches applied.

net/core/sock.c:274:36: error: initializer element is not constant
net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
net/core/sock.c:274:36: error: initializer element is not constant

Dave Anglin says:
&gt; Here is the line in sock.i:
&gt;
&gt; struct static_key memalloc_socks = ((struct static_key) { .enabled =
&gt; ((atomic_t) { (0) }) });

The above line contains two compound literals.  It also uses a designated
initializer to initialize the field enabled.  A compound literal is not a
constant expression.

The location of the above statement isn't fully clear, but if a compound
literal occurs outside the body of a function, the initializer list must
consist of constant expressions.

Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>powerpc: Restore correct DSCR in context switch</title>
<updated>2012-09-14T17:00:49Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2012-09-03T16:51:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7b296be56d7355e6cbf340a1f6a567810ba4c32c'/>
<id>urn:sha1:7b296be56d7355e6cbf340a1f6a567810ba4c32c</id>
<content type='text'>
commit 714332858bfd40dcf8f741498336d93875c23aa7 upstream.

During a context switch we always restore the per thread DSCR value.
If we aren't doing explicit DSCR management
(ie thread.dscr_inherit == 0) and the default DSCR changed while
the process has been sleeping we end up with the wrong value.

Check thread.dscr_inherit and select the default DSCR or per thread
DSCR as required.

This was found with the following test case, when running with
more threads than CPUs (ie forcing context switching):

http://ozlabs.org/~anton/junkcode/dscr_default_test.c

With the four patches applied I can run a combination of all
test cases successfully at the same time:

http://ozlabs.org/~anton/junkcode/dscr_default_test.c
http://ozlabs.org/~anton/junkcode/dscr_explicit_test.c
http://ozlabs.org/~anton/junkcode/dscr_inherit_test.c

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>powerpc: Fix DSCR inheritance in copy_thread()</title>
<updated>2012-09-14T17:00:49Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2012-09-03T16:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=52640dfe68118991369cae14e7877caa2e8ef7a7'/>
<id>urn:sha1:52640dfe68118991369cae14e7877caa2e8ef7a7</id>
<content type='text'>
commit 1021cb268b3025573c4811f1dee4a11260c4507b upstream.

If the default DSCR is non zero we set thread.dscr_inherit in
copy_thread() meaning the new thread and all its children will ignore
future updates to the default DSCR. This is not intended and is
a change in behaviour that a number of our users have hit.

We just need to inherit thread.dscr and thread.dscr_inherit from
the parent which ends up being much simpler.

This was found with the following test case:

http://ozlabs.org/~anton/junkcode/dscr_default_test.c

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
