<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers, branch v4.4.63</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.4.63</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.4.63'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2017-04-21T07:30:08Z</updated>
<entry>
<title>tty/serial: atmel: RS485 half duplex w/DMA: enable RX after TX is done</title>
<updated>2017-04-21T07:30:08Z</updated>
<author>
<name>Richard Genoud</name>
<email>richard.genoud@gmail.com</email>
</author>
<published>2016-12-06T12:05:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=990a142ee0d3b504a0a3c23a16e2cda41c5d45cf'/>
<id>urn:sha1:990a142ee0d3b504a0a3c23a16e2cda41c5d45cf</id>
<content type='text'>
commit b389f173aaa1204d6dc1f299082a162eb0491545 upstream.

When using RS485 in half duplex, RX should be enabled when TX is
finished, and stopped when TX starts.

Before commit 0058f0871efe7b01c6 ("tty/serial: atmel: fix RS485 half
duplex with DMA"), RX was not disabled in atmel_start_tx() if the DMA
was used. So, collisions could happened.

But disabling RX in atmel_start_tx() uncovered another bug:
RX was enabled again in the wrong place (in atmel_tx_dma) instead of
being enabled when TX is finished (in atmel_complete_tx_dma), so the
transmission simply stopped.

This bug was not triggered before commit 0058f0871efe7b01c6
("tty/serial: atmel: fix RS485 half duplex with DMA") because RX was
never disabled before.

Moving atmel_start_rx() in atmel_complete_tx_dma() corrects the problem.

Reported-by: Gil Weber &lt;webergil@gmail.com&gt;
Fixes: 0058f0871efe7b01c6
Tested-by: Gil Weber &lt;webergil@gmail.com&gt;
Signed-off-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Acked-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Tested-by: Bryan Evenson &lt;bevenson@melinkcorp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ibmveth: calculate gso_segs for large packets</title>
<updated>2017-04-21T07:30:08Z</updated>
<author>
<name>Thomas Falcon</name>
<email>tlfalcon@linux.vnet.ibm.com</email>
</author>
<published>2016-12-14T00:15:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=403a728d1a35111103669aa125dcecfbe04e6872'/>
<id>urn:sha1:403a728d1a35111103669aa125dcecfbe04e6872</id>
<content type='text'>
commit 94acf164dc8f1184e8d0737be7125134c2701dbe upstream.

Include calculations to compute the number of segments
that comprise an aggregated large packet.

Signed-off-by: Thomas Falcon &lt;tlfalcon@linux.vnet.ibm.com&gt;
Reviewed-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Reviewed-by: Jonathan Maxwell &lt;jmaxwell37@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sumit Semwal &lt;sumit.semwal@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>catc: Use heap buffer for memory size test</title>
<updated>2017-04-21T07:30:08Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2017-02-04T16:57:04Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=65596042c3af1c3578f5e478f512f595d7fa31d0'/>
<id>urn:sha1:65596042c3af1c3578f5e478f512f595d7fa31d0</id>
<content type='text'>
commit 2d6a0e9de03ee658a9adc3bfb2f0ca55dff1e478 upstream.

Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>catc: Combine failure cleanup code in catc_probe()</title>
<updated>2017-04-21T07:30:08Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2017-02-04T16:56:56Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=40531b26bade950cf9c815d8238be27b009aa197'/>
<id>urn:sha1:40531b26bade950cf9c815d8238be27b009aa197</id>
<content type='text'>
commit d41149145f98fe26dcd0bfd1d6cc095e6e041418 upstream.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&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>rtl8150: Use heap buffers for all register access</title>
<updated>2017-04-21T07:30:07Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2017-02-04T16:56:32Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a90604be51de4e63f916261a91edd4f67e8b0b2b'/>
<id>urn:sha1:a90604be51de4e63f916261a91edd4f67e8b0b2b</id>
<content type='text'>
commit 7926aff5c57b577ab0f43364ff0c59d968f6a414 upstream.

Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>pegasus: Use heap buffers for all register access</title>
<updated>2017-04-21T07:30:07Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2017-02-04T16:56:03Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=be570e556deec7466d74a579129671185501a456'/>
<id>urn:sha1:be570e556deec7466d74a579129671185501a456</id>
<content type='text'>
commit 5593523f968bc86d42a035c6df47d5e0979b5ace upstream.

Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
References: https://bugs.debian.org/852556
Reported-by: Lisandro Damián Nicanor Pérez Meyer &lt;lisandro@debian.org&gt;
Tested-by: Lisandro Damián Nicanor Pérez Meyer &lt;lisandro@debian.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Brad Spengler &lt;spender@grsecurity.net&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:30:07Z</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=eb5267657d85bfcbb60803dd88fa82c7dede6aab'/>
<id>urn:sha1:eb5267657d85bfcbb60803dd88fa82c7dede6aab</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>dvb-usb-firmware: don't do DMA on stack</title>
<updated>2017-04-21T07:30:07Z</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=6be431f91632504f269b6e8ffcd552a5ca3fd84d'/>
<id>urn:sha1:6be431f91632504f269b6e8ffcd552a5ca3fd84d</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:30:07Z</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=502157457f52654595d28a555327e84b3e35c268'/>
<id>urn:sha1:502157457f52654595d28a555327e84b3e35c268</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:30:07Z</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=6739cc12f3dbd7e4b3795f6e809d44ea6b490bb6'/>
<id>urn:sha1:6739cc12f3dbd7e4b3795f6e809d44ea6b490bb6</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>
</feed>
