Bug 375811

Summary: Siano driver stopped working after upgrading to Kernel 4.9
Product: [Applications] kaffeine Reporter: sajjads24 <sajjaddns>
Component: generalAssignee: Mauro Carvalho Chehab <mchehab>
Status: RESOLVED FIXED    
Severity: normal CC: yulinux
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Patch for Kernel 4.9 and upper to fix Siano driver

Description sajjads24 2017-01-31 18:16:04 UTC
hi
can not play channel dvb-t on kaffeine after update kernel !:
[CODE][sajjad@localhost ~] $ lsusb
Bus 002 Device 003: ID 04f9:003f Brother Industries, Ltd 
Bus 002 Device 005: ID 187f:0202 Siano Mobile Silicon Nice
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 14cd:8168 Super Top 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[sajjad@localhost ~] $ file:///home/sajjad/Desktop//org.kde.kaffeine.desktop
bash: file:///home/sajjad/Desktop//org.kde.kaffeine.desktop: No such file or directory
[sajjad@localhost ~] $ kaffeine                                     
28-01-17 07:15:18.771 [Info    ] Using built-in dvb device manager
28-01-17 07:15:18.978 [Info    ] Found dvb device : Siano Mobile Digital MDTV Receiver
28-01-17 07:15:18.993 [Info    ] Found dvb device P13d0210313d02103: Conexant CX24123/CX24109
28-01-17 07:15:21.068 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:21.068 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:21.068 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:21.068 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:46.859 [Warning ] Trying to remove a nonexistent filter
28-01-17 07:15:46.859 [Warning ] Trying to remove a nonexistent filter              
28-01-17 07:15:46.859 [Warning ] Trying to remove a nonexistent filter              
28-01-17 07:15:46.859 [Warning ] Trying to remove a nonexistent filter              
[00007fbaa400aed8] es demux error: cannot peek
[00007fbaa400aed8] es demux error: cannot peek
[00007fbaa400aed8] es demux error: cannot peek
[00007fbaa400aed8] es demux error: cannot peek
[00007fbaa400aed8] es demux error: cannot peek
[00007fbaa400aed8] ps demux error: cannot peek
[00007fbaa400aed8] mpgv demux error: cannot peek
[00007fbaa400aed8] mjpeg demux error: cannot peek
[00007fbaa400aed8] ps demux error: cannot peek
28-01-17 07:15:46.988 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:46.988 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:46.988 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:46.989 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:46.989 [Warning ] Cannot set up PID filter for demux /dev/dvb/adapter1/demux0
28-01-17 07:15:54.212 [Warning ] EPG filter list not empty
28-01-17 07:15:54.212 [Warning ] Trying to remove a nonexistent filter
[00007fbaa4004128] es demux error: cannot peek
[00007fbaa4004128] es demux error: cannot peek
[00007fbaa4004128] es demux error: cannot peek
[00007fbaa4004128] es demux error: cannot peek
[00007fbaa4004128] es demux error: cannot peek
[00007fbaa4004128] ps demux error: cannot peek
[00007fbaa4004128] mpgv demux error: cannot peek
[00007fbaa4004128] mjpeg demux error: cannot peek
[00007fbaa4004128] ps demux error: cannot peek
[sajjad@localhost ~] $ uname -r
4.9.5-200.fc25.x86_64
[sajjad@localhost ~] $ [/CODE]
how fix error ?
plz help me.

thanks
Comment 1 yulinux 2017-02-08 18:09:46 UTC
If it stops working after a kernel update, maybe the problem is the kernel and not kaffeine. But Mauro Carvalho Chehab maybe knows.

Which kernel version is the last version that worked and which version is the first version that failed (4.9.5-200.fc25.x86_64)?

And you seem to use Fedora, so maybe (just a guess) it is fixed in Linux kernel 4.10, which you could test. This is pretty easy on Fedora [1]. So if you understand the commands on the wiki page, you could install e.g. Linux 4.10 RC7 as a test, maybe it works there. Let us know, if there is any change.

If it is not fixed there, you should probably file a bug on  https://bugzilla.kernel.org/


[1] https://fedoraproject.org/wiki/Kernel_Vanilla_Repositories
Comment 2 Mauro Carvalho Chehab 2017-02-14 09:39:32 UTC
(In reply to yulinux from comment #1)
> If it stops working after a kernel update, maybe the problem is the kernel
> and not kaffeine. But Mauro Carvalho Chehab maybe knows.

That sounds more like a Kernel bug. By default, Kernel 4.9 doesn't allow using a buffer at the stack to be used to send/receive data from USB devices anymore.

Several drivers had to be fixed to make it work again, but, as far as I remember, we didn't touch the Siano driver. I'll take a look on it.

While this is not fixed upstream, you may recompile the Kernel by hand, disabling CONFIG_VMAP_STACK, or use a Kernel < 4.9.
Comment 3 Mauro Carvalho Chehab 2017-02-14 11:13:33 UTC
(In reply to Mauro Carvalho Chehab from comment #2)
> (In reply to yulinux from comment #1)
> > If it stops working after a kernel update, maybe the problem is the kernel
> > and not kaffeine. But Mauro Carvalho Chehab maybe knows.
> 
> That sounds more like a Kernel bug. By default, Kernel 4.9 doesn't allow
> using a buffer at the stack to be used to send/receive data from USB devices
> anymore.

Indeed it is a Kernel bug. Tested here with a Siano device. dmesg clearly shows the bug:

[ 2758.493225] WARNING: CPU: 3 PID: 12035 at drivers/usb/core/hcd.c:1584 usb_hcd_map_urb_for_dma+0x37c/0x570 [usbcore]
[ 2758.493229] transfer buffer not dma capable
[ 2758.493233] Modules linked in: smsdvb(+) smsusb(+) smsmdtv sp2 ts2020 dvb_usb_dvbsky dvb_usb_v2 m88ds3103 i2c_mux dvb_core rc_core xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT nf_reject_ipv4 xt_tcpudp tun bridge stp llc ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter snd_hda_codec_hdmi cpufreq_powersave cpufreq_conservative cpufreq_userspace cmac bnep arc4 binfmt_misc i915 iwlmvm mac80211 iTCO_wdt iTCO_vendor_support snd_hda_codec_realtek snd_hda_codec_generic intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp iwlwifi kvm_intel i2c_algo_bit drm_kms_helper kvm btusb btrtl btbcm drm btintel bluetooth cfg80211 pl2303 snd_hda_intel irqbypass usbserial e1000e
[ 2758.493340]  snd_hda_codec crct10dif_pclmul crc32_pclmul crc32c_intel snd_soc_ssm4567 ghash_clmulni_intel snd_soc_core snd_hwdep aesni_intel snd_hda_core mei_me aes_x86_64 crypto_simd rfkill mei glue_helper ptp cryptd ehci_pci snd_pcm shpchp ehci_hcd pps_core sg lpc_ich mfd_core i2c_i801 pcspkr sdhci_acpi snd_timer sdhci snd mmc_core battery elan_i2c fjes acpi_als soundcore i2c_hid tpm_tis kfifo_buf tpm_tis_core industrialio video dw_dmac i2c_designware_platform tpm i2c_designware_core button acpi_pad parport_pc ppdev lp parport ip_tables x_tables ext4 crc16 jbd2 fscrypto mbcache joydev evdev hid_logitech_hidpp dm_mod hid_logitech_dj usbhid hid sd_mod ahci libahci xhci_pci libata xhci_hcd scsi_mod usbcore fan thermal
[ 2758.493457] CPU: 3 PID: 12035 Comm: modprobe Not tainted 4.10.0-rc7 #53
[ 2758.493461] Hardware name:                  /NUC5i7RYB, BIOS RYBDWi35.86A.0350.2015.0812.1722 08/12/2015
[ 2758.493466] Call Trace:
[ 2758.493479]  ? dump_stack+0x5c/0x78
[ 2758.493486]  ? __warn+0xbe/0xe0
[ 2758.493492]  ? warn_slowpath_fmt+0x5f/0x80
[ 2758.493521]  ? usb_hcd_map_urb_for_dma+0x37c/0x570 [usbcore]
[ 2758.493530]  ? get_device+0x13/0x20
[ 2758.493554]  ? usb_hcd_submit_urb+0xca/0xa50 [usbcore]
[ 2758.493565]  ? device_create_groups_vargs+0xd9/0xf0
[ 2758.493575]  ? device_create+0x51/0x70
[ 2758.493602]  ? usb_start_wait_urb+0x6d/0x170 [usbcore]
[ 2758.493615]  ? smsusb_sendrequest+0xbf/0x110 [smsusb]
[ 2758.493627]  ? smscore_configure_gpio+0xa7/0xe0 [smsmdtv]
[ 2758.493637]  ? sms_set_gpio+0x59/0xa0 [smsmdtv]
[ 2758.493647]  ? sms_board_setup+0x4d/0x80 [smsmdtv]
[ 2758.493657]  ? smsdvb_hotplug+0x29f/0x3d0 [smsdvb]
[ 2758.493666]  ? smsdvb_hotplug+0x3d0/0x3d0 [smsdvb]
[ 2758.493675]  ? smsdvb_unregister_client+0x80/0x80 [smsdvb]
[ 2758.493683]  ? smsdvb_sleep+0x70/0x70 [smsdvb]
[ 2758.493694]  ? smscore_register_hotplug+0x61/0xe0 [smsmdtv]
[ 2758.493700]  ? 0xffffffffc0c66000
[ 2758.493710]  ? smsdvb_module_init+0x3c/0x1000 [smsdvb]
[ 2758.493714]  ? 0xffffffffc0c66000
[ 2758.493722]  ? do_one_initcall+0x4e/0x1a0
[ 2758.493732]  ? kmem_cache_alloc_trace+0x106/0x220
[ 2758.493742]  ? do_init_module+0x5b/0x1f6
[ 2758.493751]  ? load_module+0x25df/0x2a10
[ 2758.493757]  ? __symbol_put+0x60/0x60
[ 2758.493766]  ? vfs_read+0x119/0x130
[ 2758.493775]  ? SYSC_finit_module+0xc6/0xf0
[ 2758.493785]  ? entry_SYSCALL_64_fastpath+0x1e/0xad
[ 2758.493791] ---[ end trace d99900d4efea0bfc ]---
Comment 4 Mauro Carvalho Chehab 2017-02-14 19:29:46 UTC
Created attachment 104033 [details]
Patch for Kernel 4.9 and upper to fix Siano driver

This is really a Kernel bug. The attached patch fix it for the Kernel. I'll send it though the usual Kernel channels, hopefully in time for Kernel 4.10, with should be released next week.
Comment 5 Mauro Carvalho Chehab 2017-02-14 19:58:17 UTC
As this is a Kernel bug, whose patch was sent upstream, I'm marking it as fixed.

It should be available soon at Kernel 4.10, and backported to Kernel 4.9 by Kernel stable maintainers. It could take a while until distributions backport them to their Kernels.