<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/media, branch v3.16.46</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>dvb-usb-firmware: don't do DMA on stack</title>
<updated>2017-07-18T17:40:10+00:00</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2017-02-12T15:02:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e9b380444ea603c977da3d738c6cddf6018f3146'/>
<id>e9b380444ea603c977da3d738c6cddf6018f3146</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;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dvb-usb: don't use stack for firmware load</title>
<updated>2017-07-18T17:40:09+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2017-01-24T10:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=51aa8ee45a4931eeffdb7e39ca42fbbffa14391f'/>
<id>51aa8ee45a4931eeffdb7e39ca42fbbffa14391f</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 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dvb-usb-v2: avoid use-after-free</title>
<updated>2017-06-05T20:17:22+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2017-02-02T14:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=522182342410708c54eb2b33ff36e85f0b045a6d'/>
<id>522182342410708c54eb2b33ff36e85f0b045a6d</id>
<content type='text'>
commit 005145378c9ad7575a01b6ce1ba118fb427f583a upstream.

I ran into a stack frame size warning because of the on-stack copy of
the USB device structure:

drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: In function 'dvb_usbv2_disconnect':
drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:1029:1: error: the frame size of 1104 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Copying a device structure like this is wrong for a number of other reasons
too aside from the possible stack overflow. One of them is that the
dev_info() call will print the name of the device later, but AFAICT
we have only copied a pointer to the name earlier and the actual name
has been freed by the time it gets printed.

This removes the on-stack copy of the device and instead copies the
device name using kstrdup(). I'm ignoring the possible failure here
as both printk() and kfree() are able to deal with NULL pointers.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 005145378c9ad7575a01b6ce1ba118fb427f583a upstream.

I ran into a stack frame size warning because of the on-stack copy of
the USB device structure:

drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: In function 'dvb_usbv2_disconnect':
drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:1029:1: error: the frame size of 1104 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Copying a device structure like this is wrong for a number of other reasons
too aside from the possible stack overflow. One of them is that the
dev_info() call will print the name of the device later, but AFAICT
we have only copied a pointer to the name earlier and the actual name
has been freed by the time it gets printed.

This removes the on-stack copy of the device and instead copies the
device name using kstrdup(). I'm ignoring the possible failure here
as both printk() and kfree() are able to deal with NULL pointers.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>uvcvideo: Fix a wrong macro</title>
<updated>2017-06-05T20:17:01+00:00</updated>
<author>
<name>Guennadi Liakhovetski</name>
<email>g.liakhovetski@gmx.de</email>
</author>
<published>2016-12-12T11:16:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8602693ae85ecaf5573b0d7a1a995d39bde215b7'/>
<id>8602693ae85ecaf5573b0d7a1a995d39bde215b7</id>
<content type='text'>
commit 17c341ec0115837a610b2da15e32546e26068234 upstream.

Don't mix up UVC_BUF_STATE_* and VB2_BUF_STATE_* codes.

Fixes: 6998b6fb4b1c ("[media] uvcvideo: Use videobuf2-vmalloc")

Signed-off-by: Guennadi Liakhovetski &lt;guennadi.liakhovetski@intel.com&gt;
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 17c341ec0115837a610b2da15e32546e26068234 upstream.

Don't mix up UVC_BUF_STATE_* and VB2_BUF_STATE_* codes.

Fixes: 6998b6fb4b1c ("[media] uvcvideo: Use videobuf2-vmalloc")

Signed-off-by: Guennadi Liakhovetski &lt;guennadi.liakhovetski@intel.com&gt;
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>media: fix dm1105.c build error</title>
<updated>2017-06-05T20:17:01+00:00</updated>
<author>
<name>Randy Dunlap</name>
<email>rdunlap@infradead.org</email>
</author>
<published>2017-01-08T01:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2e938b88ceb5959f11f9320b49d109825511f9f7'/>
<id>2e938b88ceb5959f11f9320b49d109825511f9f7</id>
<content type='text'>
commit e3bb3cddd177550d63a3e4909cf1a7782f13414d upstream.

Fix dm1105 build error when CONFIG_I2C_ALGOBIT=m and
CONFIG_DVB_DM1105=y.

drivers/built-in.o: In function `dm1105_probe':
dm1105.c:(.text+0x2836e7): undefined reference to `i2c_bit_add_bus'

Signed-off-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reported-by: kbuild test robot &lt;fengguang.wu@intel.com&gt;
Cc: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit e3bb3cddd177550d63a3e4909cf1a7782f13414d upstream.

Fix dm1105 build error when CONFIG_I2C_ALGOBIT=m and
CONFIG_DVB_DM1105=y.

drivers/built-in.o: In function `dm1105_probe':
dm1105.c:(.text+0x2836e7): undefined reference to `i2c_bit_add_bus'

Signed-off-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reported-by: kbuild test robot &lt;fengguang.wu@intel.com&gt;
Cc: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>adv7604: Initialize drive strength to default when using DT</title>
<updated>2017-06-05T20:17:00+00:00</updated>
<author>
<name>Lars-Peter Clausen</name>
<email>lars@metafoo.de</email>
</author>
<published>2016-11-29T11:23:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fbd638f72b48bb92fa472578bfc9c47e94d4bd64'/>
<id>fbd638f72b48bb92fa472578bfc9c47e94d4bd64</id>
<content type='text'>
commit da8892d410db224d9a24104529794e6e37e0c100 upstream.

The adv7604 driver platform data contains fields for configuring the drive
strength of the output pins. When probing the driver through DT these
fields are not explicitly initialized, which means they are left at 0. This
is a reserved setting for the drive strength configuration though and can
cause signal integrity issues.

Whether these signal integrity issues are visible depends on the PCB
specifics (e.g. the higher the load capacitance for the output the more
visible the issue). But it has been observed on existing solutions at high
pixel clock rates.

Initialize the drive strength settings to the power-on-reset value of the
device when probing through devicetree to avoid this issue.

Fixes: 0e158be0162b ("adv7604: Add DT support")

Signed-off-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
Reviewed-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Tested-by: Niklas Söderlund &lt;niklas.soderlund+renesas@ragnatech.se&gt;
Signed-off-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit da8892d410db224d9a24104529794e6e37e0c100 upstream.

The adv7604 driver platform data contains fields for configuring the drive
strength of the output pins. When probing the driver through DT these
fields are not explicitly initialized, which means they are left at 0. This
is a reserved setting for the drive strength configuration though and can
cause signal integrity issues.

Whether these signal integrity issues are visible depends on the PCB
specifics (e.g. the higher the load capacitance for the output the more
visible the issue). But it has been observed on existing solutions at high
pixel clock rates.

Initialize the drive strength settings to the power-on-reset value of the
device when probing through devicetree to avoid this issue.

Fixes: 0e158be0162b ("adv7604: Add DT support")

Signed-off-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
Reviewed-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Tested-by: Niklas Söderlund &lt;niklas.soderlund+renesas@ragnatech.se&gt;
Signed-off-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>siano: make it work again with CONFIG_VMAP_STACK</title>
<updated>2017-03-16T02:27:13+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2017-02-14T19:47:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6ef068c8a358eb3782dcd00db5013aa150c155ea'/>
<id>6ef068c8a358eb3782dcd00db5013aa150c155ea</id>
<content type='text'>
commit f9c85ee67164b37f9296eab3b754e543e4e96a1c upstream.

Reported as a Kaffeine bug:
	https://bugs.kde.org/show_bug.cgi?id=375811

The USB control messages require DMA to work. We cannot pass
a stack-allocated buffer, as it is not warranted that the
stack would be into a DMA enabled area.

On Kernel 4.9, the default is to not accept DMA on stack anymore
on x86 architecture. On other architectures, this has been a
requirement since Kernel 2.2. So, after this patch, this driver
should likely work fine on all archs.

Tested with USB ID 2040:5510: Hauppauge Windham

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f9c85ee67164b37f9296eab3b754e543e4e96a1c upstream.

Reported as a Kaffeine bug:
	https://bugs.kde.org/show_bug.cgi?id=375811

The USB control messages require DMA to work. We cannot pass
a stack-allocated buffer, as it is not warranted that the
stack would be into a DMA enabled area.

On Kernel 4.9, the default is to not accept DMA on stack anymore
on x86 architecture. On other architectures, this has been a
requirement since Kernel 2.2. So, after this patch, this driver
should likely work fine on all archs.

Tested with USB ID 2040:5510: Hauppauge Windham

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>s5k4ecgx: select CRC32 helper</title>
<updated>2017-03-16T02:26:39+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2016-12-09T11:41:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ecf50ddaf6eb48af8ad132f05be5f6ca9139a39d'/>
<id>ecf50ddaf6eb48af8ad132f05be5f6ca9139a39d</id>
<content type='text'>
commit c739c0a7c3c2472d7562b8f802cdce44d2597c8b upstream.

A rare randconfig build failure shows up in this driver when
the CRC32 helper is not there:

drivers/media/built-in.o: In function `s5k4ecgx_s_power':
s5k4ecgx.c:(.text+0x9eb4): undefined reference to `crc32_le'

This adds the 'select' that all other users of this function have.

Fixes: 8b99312b7214 ("[media] Add v4l2 subdev driver for S5K4ECGX sensor")

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c739c0a7c3c2472d7562b8f802cdce44d2597c8b upstream.

A rare randconfig build failure shows up in this driver when
the CRC32 helper is not there:

drivers/media/built-in.o: In function `s5k4ecgx_s_power':
s5k4ecgx.c:(.text+0x9eb4): undefined reference to `crc32_le'

This adds the 'select' that all other users of this function have.

Fixes: 8b99312b7214 ("[media] Add v4l2 subdev driver for S5K4ECGX sensor")

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DaVinci-VPFE-Capture: fix error handling</title>
<updated>2017-03-16T02:26:25+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2016-11-22T20:52:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=87acb2be3cbb668669b6bdaf99a2663857faa441'/>
<id>87acb2be3cbb668669b6bdaf99a2663857faa441</id>
<content type='text'>
commit d3d83ee20afda16ad0133ba00f63c11a8d842a35 upstream.

A recent cleanup had the right idea to remove the initialization
of the error variable, but missed the actual benefit of that,
which is that we get warnings if there is a bug in it. Now
we get a warning about a bug that was introduced by this cleanup:

drivers/media/platform/davinci/vpfe_capture.c: In function 'vpfe_probe':
drivers/media/platform/davinci/vpfe_capture.c:1992:9: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This adds the missing initialization that the warning is about,
and another one that was preexisting and that we did not get
a warning for. That second bug has existed since the driver
was first added.

Fixes: efb74461f5a6 ("[media] DaVinci-VPFE-Capture: Delete an unnecessary variable initialisation in vpfe_probe()")
Fixes: 7da8a6cb3e5b ("V4L/DVB (12248): v4l: vpfe capture bridge driver for DM355 and DM6446")

[mchehab@s-opensource.com: fix a merge conflict]
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d3d83ee20afda16ad0133ba00f63c11a8d842a35 upstream.

A recent cleanup had the right idea to remove the initialization
of the error variable, but missed the actual benefit of that,
which is that we get warnings if there is a bug in it. Now
we get a warning about a bug that was introduced by this cleanup:

drivers/media/platform/davinci/vpfe_capture.c: In function 'vpfe_probe':
drivers/media/platform/davinci/vpfe_capture.c:1992:9: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This adds the missing initialization that the warning is about,
and another one that was preexisting and that we did not get
a warning for. That second bug has existed since the driver
was first added.

Fixes: efb74461f5a6 ("[media] DaVinci-VPFE-Capture: Delete an unnecessary variable initialisation in vpfe_probe()")
Fixes: 7da8a6cb3e5b ("V4L/DVB (12248): v4l: vpfe capture bridge driver for DM355 and DM6446")

[mchehab@s-opensource.com: fix a merge conflict]
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ite-cir: initialize use_demodulator before using it</title>
<updated>2017-03-16T02:26:17+00:00</updated>
<author>
<name>Nicolas Iooss</name>
<email>nicolas.iooss_linux@m4x.org</email>
</author>
<published>2016-09-10T16:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5c04a2622839a8a2246d9b74ced2e6a18d53c7c5'/>
<id>5c04a2622839a8a2246d9b74ced2e6a18d53c7c5</id>
<content type='text'>
commit 7ec03e60ef81c19b5d3a46dd070ee966774b860f upstream.

Function ite_set_carrier_params() uses variable use_demodulator after
having initialized it to false in some if branches, but this variable is
never set to true otherwise.

This bug has been found using clang -Wsometimes-uninitialized warning
flag.

Fixes: 620a32bba4a2 ("[media] rc: New rc-based ite-cir driver for
several ITE CIRs")

Signed-off-by: Nicolas Iooss &lt;nicolas.iooss_linux@m4x.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7ec03e60ef81c19b5d3a46dd070ee966774b860f upstream.

Function ite_set_carrier_params() uses variable use_demodulator after
having initialized it to false in some if branches, but this variable is
never set to true otherwise.

This bug has been found using clang -Wsometimes-uninitialized warning
flag.

Fixes: 620a32bba4a2 ("[media] rc: New rc-based ite-cir driver for
several ITE CIRs")

Signed-off-by: Nicolas Iooss &lt;nicolas.iooss_linux@m4x.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
