Summary: | Siano driver stopped working after upgrading to Kernel 4.9 | ||
---|---|---|---|
Product: | [Applications] kaffeine | Reporter: | sajjads24 <sajjaddns> |
Component: | general | Assignee: | 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
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 (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. (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 ]--- 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.
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. |