<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git, branch v4.9.24</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.24</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.24'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2017-04-21T07:31:39Z</updated>
<entry>
<title>Linux 4.9.24</title>
<updated>2017-04-21T07:31:39Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2017-04-21T07:31:39Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=2f5e58ec793f56f9ac1c6736b4638a4b81d6f099'/>
<id>urn:sha1:2f5e58ec793f56f9ac1c6736b4638a4b81d6f099</id>
<content type='text'>
</content>
</entry>
<entry>
<title>sctp: deny peeloff operation on asocs with threads sleeping on it</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Marcelo Ricardo Leitner</name>
<email>marcelo.leitner@gmail.com</email>
</author>
<published>2017-02-23T12:31:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=35b9d61ea910c1ebd4652b32cc7d713f6689b4f4'/>
<id>urn:sha1:35b9d61ea910c1ebd4652b32cc7d713f6689b4f4</id>
<content type='text'>
commit dfcb9f4f99f1e9a49e43398a7bfbf56927544af1 upstream.

commit 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf")
attempted to avoid a BUG_ON call when the association being used for a
sendmsg() is blocked waiting for more sndbuf and another thread did a
peeloff operation on such asoc, moving it to another socket.

As Ben Hutchings noticed, then in such case it would return without
locking back the socket and would cause two unlocks in a row.

Further analysis also revealed that it could allow a double free if the
application managed to peeloff the asoc that is created during the
sendmsg call, because then sctp_sendmsg() would try to free the asoc
that was created only for that call.

This patch takes another approach. It will deny the peeloff operation
if there is a thread sleeping on the asoc, so this situation doesn't
exist anymore. This avoids the issues described above and also honors
the syscalls that are already being handled (it can be multiple sendmsg
calls).

Joint work with Xin Long.

Fixes: 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf")
Cc: Alexander Popov &lt;alex.popov@linux.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>net: ipv6: check route protocol when deleting routes</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Mantas M</name>
<email>grawity@gmail.com</email>
</author>
<published>2016-12-16T08:30:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c67c2be735b143422db69ba2012b2c93edb92baa'/>
<id>urn:sha1:c67c2be735b143422db69ba2012b2c93edb92baa</id>
<content type='text'>
commit c2ed1880fd61a998e3ce40254a99a2ad000f1a7d upstream.

The protocol field is checked when deleting IPv4 routes, but ignored for
IPv6, which causes problems with routing daemons accidentally deleting
externally set routes (observed by multiple bird6 users).

This can be verified using `ip -6 route del &lt;prefix&gt; proto something`.

Signed-off-by: Mantas Mikulėnas &lt;grawity@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>virtio-console: avoid DMA from stack</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Omar Sandoval</name>
<email>osandov@fb.com</email>
</author>
<published>2017-02-01T08:02:27Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=86c6667f6a5f6bdb392d8ffbe58fbcbcf6db2704'/>
<id>urn:sha1:86c6667f6a5f6bdb392d8ffbe58fbcbcf6db2704</id>
<content type='text'>
commit c4baad50297d84bde1a7ad45e50c73adae4a2192 upstream.

put_chars() stuffs the buffer it gets into an sg, but that buffer may be
on the stack. This breaks with CONFIG_VMAP_STACK=y (for me, it
manifested as printks getting turned into NUL bytes).

Signed-off-by: Omar Sandoval &lt;osandov@fb.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Reviewed-by: Amit Shah &lt;amit.shah@redhat.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>cxusb: Use a dma capable buffer also for reading</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2017-02-05T14:57:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fb00319317c152bf3528df13a54c28bf8c5daa55'/>
<id>urn:sha1:fb00319317c152bf3528df13a54c28bf8c5daa55</id>
<content type='text'>
commit 3f190e3aec212fc8c61e202c51400afa7384d4bc upstream.

Commit 17ce039b4e54 ("[media] cxusb: don't do DMA on stack")
added a kmalloc'ed bounce buffer for writes, but missed to do the same
for reads. As the read only happens after the write is finished, we can
reuse the same buffer.

As dvb_usb_generic_rw handles a read length of 0 by itself, avoid calling
it using the dvb_usb_generic_read wrapper function.

Signed-off-by: Stefan Brüns &lt;stefan.bruens@rwth-aachen.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dvb-usb-firmware: don't do DMA on stack</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2017-02-12T15:02:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=28d1e8b7ef81d254583f68627095f8a85e39597d'/>
<id>urn:sha1:28d1e8b7ef81d254583f68627095f8a85e39597d</id>
<content type='text'>
commit 67b0503db9c29b04eadfeede6bebbfe5ddad94ef upstream.

The buffer allocation for the firmware data was changed in
commit 43fab9793c1f ("[media] dvb-usb: don't use stack for firmware load")
but the same applies for the reset value.

Fixes: 43fab9793c1f ("[media] dvb-usb: don't use stack for firmware load")
Signed-off-by: Stefan Brüns &lt;stefan.bruens@rwth-aachen.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dvb-usb: don't use stack for firmware load</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2017-01-24T10:13:11Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=36b62c08e72b9cff822d8d8e007d75302c71d68c'/>
<id>urn:sha1:36b62c08e72b9cff822d8d8e007d75302c71d68c</id>
<content type='text'>
commit 43fab9793c1f44e665b4f98035a14942edf03ddc upstream.

As reported by Marc Duponcheel &lt;marc@offline.be&gt;, firmware load on
dvb-usb is using the stack, with is not allowed anymore on default
Kernel configurations:

[ 1025.958836] dvb-usb: found a 'WideView WT-220U PenType Receiver (based on ZL353)' in cold state, will try to load a firmware
[ 1025.958853] dvb-usb: downloading firmware from file 'dvb-usb-wt220u-zl0353-01.fw'
[ 1025.958855] dvb-usb: could not stop the USB controller CPU.
[ 1025.958856] dvb-usb: error while transferring firmware (transferred size: -11, block size: 3)
[ 1025.958856] dvb-usb: firmware download failed at 8 with -22
[ 1025.958867] usbcore: registered new interface driver dvb_usb_dtt200u

[    2.789902] dvb-usb: downloading firmware from file 'dvb-usb-wt220u-zl0353-01.fw'
[    2.789905] ------------[ cut here ]------------
[    2.789911] WARNING: CPU: 3 PID: 2196 at drivers/usb/core/hcd.c:1584 usb_hcd_map_urb_for_dma+0x430/0x560 [usbcore]
[    2.789912] transfer buffer not dma capable
[    2.789912] Modules linked in: btusb dvb_usb_dtt200u(+) dvb_usb_af9035(+) btrtl btbcm dvb_usb dvb_usb_v2 btintel dvb_core bluetooth rc_core rfkill x86_pkg_temp_thermal intel_powerclamp coretemp crc32_pclmul aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd drm_kms_helper syscopyarea sysfillrect pcspkr i2c_i801 sysimgblt fb_sys_fops drm i2c_smbus i2c_core r8169 lpc_ich mfd_core mii thermal fan rtc_cmos video button acpi_cpufreq processor snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer snd crc32c_intel ahci libahci libata xhci_pci ehci_pci xhci_hcd ehci_hcd usbcore usb_common dm_mirror dm_region_hash dm_log dm_mod
[    2.789936] CPU: 3 PID: 2196 Comm: systemd-udevd Not tainted 4.9.0-gentoo #1
[    2.789937] Hardware name: ASUS All Series/H81I-PLUS, BIOS 0401 07/23/2013
[    2.789938]  ffffc9000339b690 ffffffff812bd397 ffffc9000339b6e0 0000000000000000
[    2.789939]  ffffc9000339b6d0 ffffffff81055c86 000006300339b6a0 ffff880116c0c000
[    2.789941]  0000000000000000 0000000000000000 0000000000000001 ffff880116c08000
[    2.789942] Call Trace:
[    2.789945]  [&lt;ffffffff812bd397&gt;] dump_stack+0x4d/0x66
[    2.789947]  [&lt;ffffffff81055c86&gt;] __warn+0xc6/0xe0
[    2.789948]  [&lt;ffffffff81055cea&gt;] warn_slowpath_fmt+0x4a/0x50
[    2.789952]  [&lt;ffffffffa006d460&gt;] usb_hcd_map_urb_for_dma+0x430/0x560 [usbcore]
[    2.789954]  [&lt;ffffffff814ed5a8&gt;] ? io_schedule_timeout+0xd8/0x110
[    2.789956]  [&lt;ffffffffa006e09c&gt;] usb_hcd_submit_urb+0x9c/0x980 [usbcore]
[    2.789958]  [&lt;ffffffff812d0ebf&gt;] ? copy_page_to_iter+0x14f/0x2b0
[    2.789960]  [&lt;ffffffff81126818&gt;] ? pagecache_get_page+0x28/0x240
[    2.789962]  [&lt;ffffffff8118c2a0&gt;] ? touch_atime+0x20/0xa0
[    2.789964]  [&lt;ffffffffa006f7c4&gt;] usb_submit_urb+0x2c4/0x520 [usbcore]
[    2.789967]  [&lt;ffffffffa006feca&gt;] usb_start_wait_urb+0x5a/0xe0 [usbcore]
[    2.789969]  [&lt;ffffffffa007000c&gt;] usb_control_msg+0xbc/0xf0 [usbcore]
[    2.789970]  [&lt;ffffffffa067903d&gt;] usb_cypress_writemem+0x3d/0x40 [dvb_usb]
[    2.789972]  [&lt;ffffffffa06791cf&gt;] usb_cypress_load_firmware+0x4f/0x130 [dvb_usb]
[    2.789973]  [&lt;ffffffff8109dbbe&gt;] ? console_unlock+0x2fe/0x5d0
[    2.789974]  [&lt;ffffffff8109e10c&gt;] ? vprintk_emit+0x27c/0x410
[    2.789975]  [&lt;ffffffff8109e40a&gt;] ? vprintk_default+0x1a/0x20
[    2.789976]  [&lt;ffffffff81124d76&gt;] ? printk+0x43/0x4b
[    2.789977]  [&lt;ffffffffa0679310&gt;] dvb_usb_download_firmware+0x60/0xd0 [dvb_usb]
[    2.789979]  [&lt;ffffffffa0679898&gt;] dvb_usb_device_init+0x3d8/0x610 [dvb_usb]
[    2.789981]  [&lt;ffffffffa069e302&gt;] dtt200u_usb_probe+0x92/0xd0 [dvb_usb_dtt200u]
[    2.789984]  [&lt;ffffffffa007420c&gt;] usb_probe_interface+0xfc/0x270 [usbcore]
[    2.789985]  [&lt;ffffffff8138bf95&gt;] driver_probe_device+0x215/0x2d0
[    2.789986]  [&lt;ffffffff8138c0e6&gt;] __driver_attach+0x96/0xa0
[    2.789987]  [&lt;ffffffff8138c050&gt;] ? driver_probe_device+0x2d0/0x2d0
[    2.789988]  [&lt;ffffffff81389ffb&gt;] bus_for_each_dev+0x5b/0x90
[    2.789989]  [&lt;ffffffff8138b7b9&gt;] driver_attach+0x19/0x20
[    2.789990]  [&lt;ffffffff8138b33c&gt;] bus_add_driver+0x11c/0x220
[    2.789991]  [&lt;ffffffff8138c91b&gt;] driver_register+0x5b/0xd0
[    2.789994]  [&lt;ffffffffa0072f6c&gt;] usb_register_driver+0x7c/0x130 [usbcore]
[    2.789994]  [&lt;ffffffffa06a5000&gt;] ? 0xffffffffa06a5000
[    2.789996]  [&lt;ffffffffa06a501e&gt;] dtt200u_usb_driver_init+0x1e/0x20 [dvb_usb_dtt200u]
[    2.789997]  [&lt;ffffffff81000408&gt;] do_one_initcall+0x38/0x140
[    2.789998]  [&lt;ffffffff8116001c&gt;] ? __vunmap+0x7c/0xc0
[    2.789999]  [&lt;ffffffff81124fb0&gt;] ? do_init_module+0x22/0x1d2
[    2.790000]  [&lt;ffffffff81124fe8&gt;] do_init_module+0x5a/0x1d2
[    2.790002]  [&lt;ffffffff810c96b1&gt;] load_module+0x1e11/0x2580
[    2.790003]  [&lt;ffffffff810c68b0&gt;] ? show_taint+0x30/0x30
[    2.790004]  [&lt;ffffffff81177250&gt;] ? kernel_read_file+0x100/0x190
[    2.790005]  [&lt;ffffffff810c9ffa&gt;] SyS_finit_module+0xba/0xc0
[    2.790007]  [&lt;ffffffff814f13e0&gt;] entry_SYSCALL_64_fastpath+0x13/0x94
[    2.790008] ---[ end trace c78a74e78baec6fc ]---

So, allocate the structure dynamically.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 4.9: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mm: Tighten x86 /dev/mem with zeroing reads</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Kees Cook</name>
<email>keescook@chromium.org</email>
</author>
<published>2017-04-05T16:39:08Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=2c0ad235ac77f2fc2eee593bf06822cad772e0e2'/>
<id>urn:sha1:2c0ad235ac77f2fc2eee593bf06822cad772e0e2</id>
<content type='text'>
commit a4866aa812518ed1a37d8ea0c881dc946409de94 upstream.

Under CONFIG_STRICT_DEVMEM, reading System RAM through /dev/mem is
disallowed. However, on x86, the first 1MB was always allowed for BIOS
and similar things, regardless of it actually being System RAM. It was
possible for heap to end up getting allocated in low 1MB RAM, and then
read by things like x86info or dd, which would trip hardened usercopy:

usercopy: kernel memory exposure attempt detected from ffff880000090000 (dma-kmalloc-256) (4096 bytes)

This changes the x86 exception for the low 1MB by reading back zeros for
System RAM areas instead of blindly allowing them. More work is needed to
extend this to mmap, but currently mmap doesn't go through usercopy, so
hardened usercopy won't Oops the kernel.

Reported-by: Tommi Rantala &lt;tommi.t.rantala@nokia.com&gt;
Tested-by: Tommi Rantala &lt;tommi.t.rantala@nokia.com&gt;
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rtc: tegra: Implement clock handling</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2017-01-12T16:07:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ef793e6e113473f7cb08edf1ca4a8737c57ce51c'/>
<id>urn:sha1:ef793e6e113473f7cb08edf1ca4a8737c57ce51c</id>
<content type='text'>
commit 5fa4086987506b2ab8c92f8f99f2295db9918856 upstream.

Accessing the registers of the RTC block on Tegra requires the module
clock to be enabled. This only works because the RTC module clock will
be enabled by default during early boot. However, because the clock is
unused, the CCF will disable it at late_init time. This causes the RTC
to become unusable afterwards. This can easily be reproduced by trying
to use the RTC:

	$ hwclock --rtc /dev/rtc1

This will hang the system. I ran into this by following up on a report
by Martin Michlmayr that reboot wasn't working on Tegra210 systems. It
turns out that the rtc-tegra driver's -&gt;shutdown() implementation will
hang the CPU, because of the disabled clock, before the system can be
rebooted.

What confused me for a while is that the same driver is used on prior
Tegra generations where the hang can not be observed. However, as Peter
De Schrijver pointed out, this is because on 32-bit Tegra chips the RTC
clock is enabled by the tegra20_timer.c clocksource driver, which uses
the RTC to provide a persistent clock. This code is never enabled on
64-bit Tegra because the persistent clock infrastructure does not exist
on 64-bit ARM.

The proper fix for this is to add proper clock handling to the RTC
driver in order to ensure that the clock is enabled when the driver
requires it. All device trees contain the clock already, therefore
no additional changes are required.

Reported-by: Martin Michlmayr &lt;tbm@cyrius.com&gt;
Acked-By Peter De Schrijver &lt;pdeschrijver@nvidia.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
[bwh: Backported to 4.9: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>ACPI / EC: Use busy polling mode when GPE is not enabled</title>
<updated>2017-04-21T07:31:24Z</updated>
<author>
<name>Lv Zheng</name>
<email>lv.zheng@intel.com</email>
</author>
<published>2017-01-20T08:42:48Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0dd962118a201a19d8c5c01e4909bfc07c288d6c'/>
<id>urn:sha1:0dd962118a201a19d8c5c01e4909bfc07c288d6c</id>
<content type='text'>
commit c3a696b6e8f8f75f9f75e556a9f9f6472eae2655 upstream.

When GPE is not enabled, it is not efficient to use the wait polling mode
as it introduces an unexpected scheduler delay.
So before the GPE handler is installed, this patch uses busy polling mode
for all EC(s) and the logic can be applied to non boot EC(s) during the
suspend/resume process.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=191561
Tested-by: Jakobus Schurz &lt;jakobus.schurz@gmail.com&gt;
Tested-by: Chen Yu &lt;yu.c.chen@intel.com&gt;
Signed-off-by: Lv Zheng &lt;lv.zheng@intel.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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