<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux, branch v3.12.26</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/?h=v3.12.26</id>
<link rel='self' href='https://git.amat.us/linux/atom/?h=v3.12.26'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-07-30T16:02:44Z</updated>
<entry>
<title>Linux 3.12.26</title>
<updated>2014-07-30T16:02:44Z</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2014-07-30T11:48:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d83a3234d2e1e2a55e7f2430fc9ca29a9bd315e7'/>
<id>urn:sha1:d83a3234d2e1e2a55e7f2430fc9ca29a9bd315e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>x86/efi: Include a .bss section within the PE/COFF headers</title>
<updated>2014-07-30T16:02:44Z</updated>
<author>
<name>Michael Brown</name>
<email>mbrown@fensystems.co.uk</email>
</author>
<published>2014-07-10T11:26:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9e6e90fce2c4cdd721229855a32e4c266e323ff3'/>
<id>urn:sha1:9e6e90fce2c4cdd721229855a32e4c266e323ff3</id>
<content type='text'>
commit c7fb93ec51d462ec3540a729ba446663c26a0505 upstream.

The PE/COFF headers currently describe only the initialised-data
portions of the image, and result in no space being allocated for the
uninitialised-data portions.  Consequently, the EFI boot stub will end
up overwriting unexpected areas of memory, with unpredictable results.

Fix by including a .bss section in the PE/COFF headers (functionally
equivalent to the init_size field in the bzImage header).

Signed-off-by: Michael Brown &lt;mbrown@fensystems.co.uk&gt;
Cc: Thomas Bächler &lt;thomas@archlinux.org&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>Fix gcc-4.9.0 miscompilation of load_balance() in scheduler</title>
<updated>2014-07-30T16:02:43Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-07-26T21:52:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5c8c5c98c79c08f34f28dd24e5dc385cbc6bf148'/>
<id>urn:sha1:5c8c5c98c79c08f34f28dd24e5dc385cbc6bf148</id>
<content type='text'>
commit 2062afb4f804afef61cbe62a30cac9a46e58e067 upstream.

Michel Dänzer and a couple of other people reported inexplicable random
oopses in the scheduler, and the cause turns out to be gcc mis-compiling
the load_balance() function when debugging is enabled.  The gcc bug
apparently goes back to gcc-4.5, but slight optimization changes means
that it now showed up as a problem in 4.9.0 and 4.9.1.

The instruction scheduling problem causes gcc to schedule a spill
operation to before the stack frame has been created, which in turn can
corrupt the spilled value if an interrupt comes in.  There may be other
effects of this bug too, but that's the code generation problem seen in
Michel's case.

This is fixed in current gcc HEAD, but the workaround as suggested by
Markus Trippelsdorf is pretty simple: use -fno-var-tracking-assignments
when compiling the kernel, which disables the gcc code that causes the
problem.  This can result in slightly worse debug information for
variable accesses, but that is infinitely preferable to actual code
generation problems.

Doing this unconditionally (not just for CONFIG_DEBUG_INFO) also allows
non-debug builds to verify that the debug build would be identical: we
can do

    export GCC_COMPARE_DEBUG=1

to make gcc internally verify that the result of the build is
independent of the "-g" flag (it will make the compiler build everything
twice, toggling the debug flag, and compare the results).

Without the "-fno-var-tracking-assignments" option, the build would fail
(even with 4.8.3 that didn't show the actual stack frame bug) with a gcc
compare failure.

See also gcc bugzilla:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

Reported-by: Michel Dänzer &lt;michel@daenzer.net&gt;
Suggested-by: Markus Trippelsdorf &lt;markus@trippelsdorf.de&gt;
Cc: Jakub Jelinek &lt;jakub@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>drm/radeon: fix irq ring buffer overflow handling</title>
<updated>2014-07-30T16:02:43Z</updated>
<author>
<name>Christian König</name>
<email>christian.koenig@amd.com</email>
</author>
<published>2014-07-23T07:47:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8212ac7361acad70844b0eefa1ba0184111b2b72'/>
<id>urn:sha1:8212ac7361acad70844b0eefa1ba0184111b2b72</id>
<content type='text'>
commit e8c214d22e76dd0ead38f97f8d2dc09aac70d651 upstream.

We must mask out the overflow bit as well, otherwise
the wptr will never match the rptr again and the interrupt
handler will loop forever.

Signed-off-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: Michel Dänzer &lt;michel.daenzer@amd.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>x86_32, entry: Store badsys error code in %eax</title>
<updated>2014-07-30T16:02:42Z</updated>
<author>
<name>Sven Wegener</name>
<email>sven.wegener@stealer.net</email>
</author>
<published>2014-07-22T08:26:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e22bad0c6cda35ae9b9561652e9644bc847d28bf'/>
<id>urn:sha1:e22bad0c6cda35ae9b9561652e9644bc847d28bf</id>
<content type='text'>
commit 8142b215501f8b291a108a202b3a053a265b03dd upstream.

Commit 554086d ("x86_32, entry: Do syscall exit work on badsys
(CVE-2014-4508)") introduced a regression in the x86_32 syscall entry
code, resulting in syscall() not returning proper errors for undefined
syscalls on CPUs supporting the sysenter feature.

The following code:

&gt; int result = syscall(666);
&gt; printf("result=%d errno=%d error=%s\n", result, errno, strerror(errno));

results in:

&gt; result=666 errno=0 error=Success

Obviously, the syscall return value is the called syscall number, but it
should have been an ENOSYS error. When run under ptrace it behaves
correctly, which makes it hard to debug in the wild:

&gt; result=-1 errno=38 error=Function not implemented

The %eax register is the return value register. For debugging via ptrace
the syscall entry code stores the complete register context on the
stack. The badsys handlers only store the ENOSYS error code in the
ptrace register set and do not set %eax like a regular syscall handler
would. The old resume_userspace call chain contains code that clobbers
%eax and it restores %eax from the ptrace registers afterwards. The same
goes for the ptrace-enabled call chain. When ptrace is not used, the
syscall return value is the passed-in syscall number from the untouched
%eax register.

Use %eax as the return value register in syscall_badsys and
sysenter_badsys, like a real syscall handler does, and have the caller
push the value onto the stack for ptrace access.

Signed-off-by: Sven Wegener &lt;sven.wegener@stealer.net&gt;
Link: http://lkml.kernel.org/r/alpine.LNX.2.11.1407221022380.31021@titan.int.lan.stealer.net
Reviewed-and-tested-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>fs: umount on symlink leaks mnt count</title>
<updated>2014-07-30T16:02:41Z</updated>
<author>
<name>Vasily Averin</name>
<email>vvs@parallels.com</email>
</author>
<published>2014-07-21T08:30:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=37b0ade4c681de6e0d7762c948c400496bc1b27b'/>
<id>urn:sha1:37b0ade4c681de6e0d7762c948c400496bc1b27b</id>
<content type='text'>
commit 295dc39d941dc2ae53d5c170365af4c9d5c16212 upstream.

Currently umount on symlink blocks following umount:

/vz is separate mount

# ls /vz/ -al | grep test
drwxr-xr-x.  2 root root       4096 Jul 19 01:14 testdir
lrwxrwxrwx.  1 root root         11 Jul 19 01:16 testlink -&gt; /vz/testdir
# umount -l /vz/testlink
umount: /vz/testlink: not mounted (expected)

# lsof /vz
# umount /vz
umount: /vz: device is busy. (unexpected)

In this case mountpoint_last() gets an extra refcount on path-&gt;mnt

Signed-off-by: Vasily Averin &lt;vvs@openvz.org&gt;
Acked-by: Ian Kent &lt;raven@themaw.net&gt;
Acked-by: Jeff Layton &lt;jlayton@primarydata.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>hwmon: (smsc47m192) Fix temperature limit and vrm write operations</title>
<updated>2014-07-30T16:02:41Z</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2014-07-18T14:31:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dd816b4516f2e50653a43eceb92ca6bb4f562629'/>
<id>urn:sha1:dd816b4516f2e50653a43eceb92ca6bb4f562629</id>
<content type='text'>
commit 043572d5444116b9d9ad8ae763cf069e7accbc30 upstream.

Temperature limit clamps are applied after converting the temperature
from milli-degrees C to degrees C, so either the clamp limit needs
to be specified in degrees C, not milli-degrees C, or clamping must
happen before converting to degrees C. Use the latter method to avoid
overflows.

vrm is an u8, so the written value needs to be limited to [0, 255].

Cc: Axel Lin &lt;axel.lin@ingics.com&gt;
Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Reviewed-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>parisc: Remove SA_RESTORER define</title>
<updated>2014-07-30T16:02:41Z</updated>
<author>
<name>John David Anglin</name>
<email>dave.anglin@bell.net</email>
</author>
<published>2014-07-23T23:44:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ad8f50f8bd043ca859ad25b6ea66c20713fdae5c'/>
<id>urn:sha1:ad8f50f8bd043ca859ad25b6ea66c20713fdae5c</id>
<content type='text'>
commit 20dbea494543aefaace874cc3ec93a39b94b1ec4 upstream.

The sa_restorer field in struct sigaction is obsolete and no longer in
the parisc implementation.  However, the core code assumes the field is
present if SA_RESTORER is defined. So, the define needs to be removed.

Signed-off-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>coredump: fix the setting of PF_DUMPCORE</title>
<updated>2014-07-30T16:02:40Z</updated>
<author>
<name>Silesh C V</name>
<email>svellattu@mvista.com</email>
</author>
<published>2014-07-23T20:59:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1e6be3dd9849f2656a66fc3034cf0044f0f81d46'/>
<id>urn:sha1:1e6be3dd9849f2656a66fc3034cf0044f0f81d46</id>
<content type='text'>
commit aed8adb7688d5744cb484226820163af31d2499a upstream.

Commit 079148b919d0 ("coredump: factor out the setting of PF_DUMPCORE")
cleaned up the setting of PF_DUMPCORE by removing it from all the
linux_binfmt-&gt;core_dump() and moving it to zap_threads().But this ended
up clearing all the previously set flags.  This causes issues during
core generation when tsk-&gt;flags is checked again (eg.  for PF_USED_MATH
to dump floating point registers).  Fix this.

Signed-off-by: Silesh C V &lt;svellattu@mvista.com&gt;
Acked-by: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Mandeep Singh Baines &lt;msb@chromium.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>Input: fix defuzzing logic</title>
<updated>2014-07-30T16:02:39Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dtor@chromium.org</email>
</author>
<published>2014-07-19T23:30:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b1e86fbd194436742e891f9b952edae638d1ccf7'/>
<id>urn:sha1:b1e86fbd194436742e891f9b952edae638d1ccf7</id>
<content type='text'>
commit 50c5d36dab930b1f1b1e3348b8608aa8b9ee7610 upstream.

We attempt to remove noise from coordinates reported by devices in
input_handle_abs_event(), unfortunately, unless we were dropping the
event altogether, we were ignoring the adjusted value and were passing
on the original value instead.

Reviewed-by: Andrew de los Reyes &lt;adlr@chromium.org&gt;
Reviewed-by: Benson Leung &lt;bleung@chromium.org&gt;
Reviewed-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Reviewed-by: Henrik Rydberg &lt;rydberg@euromail.se&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
</feed>
