Summary: | sys-kernel/gentoo-sources-4.9.5 - oops in em28174 driver | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Jiri Pittner <jiri.pittner> |
Component: | Current packages | Assignee: | Gentoo Kernel Bug Wranglers and Kernel Maintainers <kernel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Jiri Pittner
2017-01-31 12:39:47 UTC
Do you have CONFIG_GPIOLIB=y in kernel? If not please try to enable GPIOLIB in the kernel (Device Drivers -> GPIO support). See https://www.mail-archive.com/linux-media@vger.kernel.org/msg107132.html I did not have CONFIG_GPIOLIB defined before. After kernel rebuild with this option, the problem is only partially solved, depends on the particular adapter: DVB-T adapter works: [ 44.997169] usb 1-1.2: Product: PCTV 290e [ 44.997170] usb 1-1.2: Manufacturer: PCTV Systems [ 44.997171] usb 1-1.2: SerialNumber: 00000006LKZU [ 46.220692] em28xx: New device PCTV Systems PCTV 290e @ 480 Mbps (2013:024f, interface 0, class 0) [ 46.220694] em28xx: DVB interface 0 found: isoc [ 46.220787] em28xx: chip ID is em28174 [ 46.556470] em28174 #0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x5efb2edd [ 46.556472] em28174 #0: EEPROM info: [ 46.556473] em28174 #0: microcode start address = 0x0004, boot configuration = 0x01 [ 46.581722] em28174 #0: No audio on board. [ 46.581723] em28174 #0: 500mA max power [ 46.581724] em28174 #0: Table at offset 0x39, strings=0x1aa0, 0x14ba, 0x1ace [ 46.581764] em28174 #0: Identified as PCTV nanoStick T2 290e (card=78) [ 46.581765] em28174 #0: dvb set to isoc mode. [ 46.581857] usbcore: registered new interface driver em28xx [ 46.585491] em28174 #0: Binding DVB extension [ 46.589169] cxd2820r 13-006c: Sony CXD2820R successfully identified [ 46.590403] tda18271 13-0060: creating new instance [ 46.599845] tda18271: TDA18271HD/C2 detected @ 13-0060 [ 46.797320] DVB: registering new adapter (em28174 #0) [ 46.797325] usb 1-1.2: DVB: registering adapter 0 frontend 0 (Sony CXD2820R)... [ 46.797584] em28174 #0: DVB extension successfully initialized However, DVB-S from Pinnacle does NOT work, this time having some problem with loading firmware blob to the device: [ 106.617062] usb 1-1.2: new high-speed USB device number 12 using ehci-pci [ 106.695497] usb 1-1.2: New USB device found, idVendor=2304, idProduct=0222 [ 106.695499] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 107.916137] dvb-usb: found a 'Pinnacle 450e DVB-S USB2.0' in cold state, will try to load a firmware [ 107.916737] dvb-usb: downloading firmware from file 'dvb-usb-pctv-400e-01.fw' [ 107.916740] ------------[ cut here ]------------ [ 107.916744] WARNING: CPU: 2 PID: 5529 at drivers/usb/core/hcd.c:1584 usb_hcd_map_urb_for_dma+0x3a3/0x550 [ 107.916745] transfer buffer not dma capable [ 107.916745] Modules linked in: dvb_usb_ttusb2(+) dvb_usb rc_pinnacle_pctv_hd em28xx_rc rc_core tda18271 cxd2820r em28xx_dvb dvb_core em28xx tveeprom v4l2_common rfcomm vboxnetflt(O) vboxnetadp(O) vboxdrv(O) snd_pcm_oss snd_mixer_oss bnep uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core btusb btrtl videodev btbcm btintel media bluetooth ax88179_178a snd_hda_codec_hdmi nvidia_drm(PO) nvidia_modeset(PO) nvidia(PO) snd_hda_codec_realtek snd_hda_codec_generic x86_pkg_temp_thermal snd_hda_intel snd_hda_codec iwlwifi snd_hda_core snd_hwdep snd_pcm mei_me snd_timer mei [ 107.916763] CPU: 2 PID: 5529 Comm: systemd-udevd Tainted: P O 4.9.5-gentoo #2 [ 107.916764] Hardware name: Hewlett-Packard HP ZBook 15 G2/2253, BIOS M70 Ver. 01.08 03/16/2015 [ 107.916765] ffffc900024fb6a0 ffffffff8156fd68 ffffc900024fb6f0 0000000000000000 [ 107.916767] ffffc900024fb6e0 ffffffff810f227c 0000063000000001 ffff88047c3cdd80 [ 107.916769] 00000000fffffff5 0000000000000000 0000000000000001 ffff88048988b800 [ 107.916770] Call Trace: [ 107.916774] [<ffffffff8156fd68>] dump_stack+0x4d/0x65 [ 107.916775] [<ffffffff810f227c>] __warn+0xcc/0xf0 [ 107.916776] [<ffffffff810f22ea>] warn_slowpath_fmt+0x4a/0x50 [ 107.916778] [<ffffffff8188c353>] usb_hcd_map_urb_for_dma+0x3a3/0x550 [ 107.916781] [<ffffffff81c78ac8>] ? io_schedule_timeout+0xd8/0x110 [ 107.916783] [<ffffffff8188c68c>] usb_hcd_submit_urb+0x18c/0x900 [ 107.916784] [<ffffffff81c79533>] ? __wait_on_bit+0x73/0x90 [ 107.916787] [<ffffffff81245bb0>] ? touch_atime+0x20/0xa0 [ 107.916788] [<ffffffff8188da72>] usb_submit_urb+0x282/0x530 [ 107.916790] [<ffffffff8188e48a>] usb_start_wait_urb+0x5a/0xe0 [ 107.916791] [<ffffffff8188e5cc>] usb_control_msg+0xbc/0xf0 [ 107.916793] [<ffffffffa004803d>] usb_cypress_writemem+0x3d/0x40 [dvb_usb] [ 107.916795] [<ffffffffa00481df>] usb_cypress_load_firmware+0x4f/0x140 [dvb_usb] [ 107.916797] [<ffffffff8113d3b0>] ? console_unlock+0x520/0x550 [ 107.916798] [<ffffffff8113d653>] ? vprintk_emit+0x273/0x430 [ 107.916799] [<ffffffff8113d99a>] ? vprintk_default+0x1a/0x20 [ 107.916801] [<ffffffff811cbf63>] ? printk+0x43/0x4b [ 107.916803] [<ffffffffa0048334>] dvb_usb_download_firmware+0x64/0xd0 [dvb_usb] [ 107.916804] [<ffffffffa00488a7>] dvb_usb_device_init+0x3c7/0x6a0 [dvb_usb] [ 107.916806] [<ffffffffa0066564>] ttusb2_probe+0x24/0x80 [dvb_usb_ttusb2] [ 107.916807] [<ffffffff81892748>] usb_probe_interface+0xf8/0x290 [ 107.916810] [<ffffffff8177cff8>] driver_probe_device+0x218/0x2d0 [ 107.916811] [<ffffffff8177d13e>] __driver_attach+0x8e/0x90 [ 107.916813] [<ffffffff8177d0b0>] ? driver_probe_device+0x2d0/0x2d0 [ 107.916814] [<ffffffff8177afef>] bus_for_each_dev+0x5f/0x90 [ 107.916816] [<ffffffff8177c9b9>] driver_attach+0x19/0x20 [ 107.916817] [<ffffffff8177c5e0>] bus_add_driver+0x1b0/0x230 [ 107.916818] [<ffffffff8177dabb>] driver_register+0x5b/0xe0 [ 107.916819] [<ffffffff8189121d>] usb_register_driver+0x7d/0x150 [ 107.916820] [<ffffffffa004d000>] ? 0xffffffffa004d000 [ 107.916822] [<ffffffffa004d029>] ttusb2_driver_init+0x29/0x50 [dvb_usb_ttusb2] [ 107.916823] [<ffffffff8100040c>] do_one_initcall+0x3c/0x160 [ 107.916825] [<ffffffff8120970c>] ? __vunmap+0x7c/0xd0 [ 107.916828] [<ffffffff8121ee03>] ? kmem_cache_alloc_trace+0x33/0x140 [ 107.916829] [<ffffffff811cc207>] do_init_module+0x5b/0x1cb [ 107.916831] [<ffffffff8116995a>] load_module+0x1f2a/0x2270 [ 107.916833] [<ffffffff811669a0>] ? __symbol_put+0x30/0x30 [ 107.916835] [<ffffffff8122fa1d>] ? kernel_read_file+0x16d/0x190 [ 107.916836] [<ffffffff8122faf4>] ? kernel_read_file_from_fd+0x44/0x70 [ 107.916838] [<ffffffff81169e60>] SYSC_finit_module+0xa0/0xb0 [ 107.916839] [<ffffffff81169e89>] SyS_finit_module+0x9/0x10 [ 107.916841] [<ffffffff81c7d2a0>] entry_SYSCALL_64_fastpath+0x13/0x94 [ 107.916842] ---[ end trace 18fd9dffdf110733 ]--- [ 107.916843] dvb-usb: could not stop the USB controller CPU. [ 107.916844] dvb-usb: error while transferring firmware (transferred size: -11, block size: 16) [ 107.916844] dvb-usb: firmware download failed at 21 with -22 [ 107.916860] usbcore: registered new interface driver dvb_usb_ttusb2 [ 133.070641] usb 1-1.2: USB disconnect, device number 12 [ 134.778159] usb 1-1.2: new high-speed USB device number 13 using ehci-pci [ 134.856624] usb 1-1.2: New USB device found, idVendor=2304, idProduct=0222 [ 134.856626] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 134.856811] dvb-usb: found a 'Pinnacle 450e DVB-S USB2.0' in cold state, will try to load a firmware [ 134.856846] dvb-usb: downloading firmware from file 'dvb-usb-pctv-400e-01.fw' [ 134.856847] dvb-usb: could not stop the USB controller CPU. [ 134.856848] dvb-usb: error while transferring firmware (transferred size: -11, block size: 16) [ 134.856849] dvb-usb: firmware download failed at 21 with -22 looks like your kernel is tainted with proprietary driver and a external loaded module, could you remove it? and post the full dmesg log? we cannot support proprietary driver It seems that the method of downloading of the firmware blob fails, not the proprietary firmware itself. If I remove the .fw file, it will just complain that it was not found. What do you exactly mean by 'removing the driver'? I fully agree that you cannot support proprietary drivers, but it is not the driver itself what fails, it is its download to the device via USB. If it worked in previous kernels, it should work in the newer ones. can you bisect your kernel ? Had no time recently. I will try whether it persists in 4.10, and if so, do the bisection. ok thanks, please report here how is going, for following up with the ticket. nvidia-drivers-378.13 could not compile with 4.10 kernel: /scratch/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:213:14: error: 'CPU_DOWN_FAILED' undeclared (and 3 more similar errors) so I could not test the videoadapter problem on 4.10 I will try the bisection between 4.7.4 and 4.9.5 in the next days. could you try this patch: https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-kmod.git/plain/kernel_4.10.patch from here: https://devtalk.nvidia.com/default/topic/995429/linux/failed-installed-nvidia-with-kernel-4-10/ The problem is still present in 4.10.1 - I have switched to nouveau to avoid problems with nvidia drivers. Still the DVB-T stick works, DVB-S does not, with the same error message: Mar 14 19:09:42 jp kernel: ------------[ cut here ]------------ Mar 14 19:09:42 jp kernel: WARNING: CPU: 2 PID: 5595 at drivers/usb/core/hcd.c:1584 usb_hcd_map_urb_for_dma+0x3a3/0x550 Mar 14 19:09:42 jp kernel: transfer buffer not dma capable Mar 14 19:09:42 jp kernel: Modules linked in: dvb_usb_ttusb2(+) dvb_usb rc_pinnacle_pctv_hd em28xx_rc rc_core tda18271 cxd2820r em28xx_dvb dvb_core em28xx tveeprom v4l2_common rfcomm vboxnetflt(O) vboxnetadp(O) vboxdrv(O) snd_pcm_oss snd_mixer_oss bnep ax88179_178a uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core videodev media btusb btrtl btbcm btintel bluetooth snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic x86_pkg_temp_thermal iwlwifi snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm mei_me mei snd_timer Mar 14 19:09:42 jp kernel: CPU: 2 PID: 5595 Comm: systemd-udevd Tainted: G O 4.10.1-gentoo #2 Mar 14 19:09:42 jp kernel: Hardware name: Hewlett-Packard HP ZBook 15 G2/2253, BIOS M70 Ver. 01.08 03/16/2015 Mar 14 19:09:42 jp kernel: Call Trace: Mar 14 19:09:42 jp kernel: dump_stack+0x4d/0x65 Mar 14 19:09:42 jp kernel: __warn+0xcc/0xf0 Mar 14 19:09:42 jp kernel: warn_slowpath_fmt+0x4a/0x50 Mar 14 19:09:42 jp kernel: usb_hcd_map_urb_for_dma+0x3a3/0x550 Mar 14 19:09:42 jp kernel: usb_hcd_submit_urb+0x18c/0x900 Mar 14 19:09:42 jp kernel: ? touch_atime+0x20/0xa0 Mar 14 19:09:42 jp kernel: ? generic_file_read_iter+0x5c6/0x7a0 Mar 14 19:09:42 jp kernel: usb_submit_urb+0x284/0x540 Mar 14 19:09:42 jp kernel: usb_start_wait_urb+0x5a/0xe0 Mar 14 19:09:42 jp kernel: usb_control_msg+0xbc/0xf0 Mar 14 19:09:42 jp kernel: usb_cypress_writemem+0x3d/0x40 [dvb_usb] Mar 14 19:09:42 jp kernel: usb_cypress_load_firmware+0x4f/0x140 [dvb_usb] Mar 14 19:09:42 jp kernel: ? wake_up_klogd+0x2f/0x40 Mar 14 19:09:42 jp kernel: ? console_unlock+0x443/0x460 Mar 14 19:09:42 jp kernel: ? vprintk_emit+0x273/0x410 Mar 14 19:09:42 jp kernel: ? vprintk_default+0x1a/0x20 Mar 14 19:09:42 jp kernel: ? printk+0x43/0x4b Mar 14 19:09:42 jp kernel: dvb_usb_download_firmware+0x64/0xd0 [dvb_usb] Mar 14 19:09:42 jp kernel: dvb_usb_device_init+0x3c7/0x6a0 [dvb_usb] Mar 14 19:09:42 jp kernel: ttusb2_probe+0x24/0x80 [dvb_usb_ttusb2] Mar 14 19:09:42 jp kernel: usb_probe_interface+0xf8/0x290 Mar 14 19:09:42 jp kernel: driver_probe_device+0x201/0x2e0 Mar 14 19:09:42 jp kernel: __driver_attach+0x8e/0x90 Mar 14 19:09:42 jp kernel: ? driver_probe_device+0x2e0/0x2e0 Mar 14 19:09:42 jp kernel: bus_for_each_dev+0x5f/0x90 Mar 14 19:09:42 jp kernel: driver_attach+0x19/0x20 Mar 14 19:09:42 jp kernel: bus_add_driver+0x1b0/0x230 Mar 14 19:09:42 jp kernel: driver_register+0x5b/0xe0 Mar 14 19:09:42 jp kernel: usb_register_driver+0x7d/0x150 Mar 14 19:09:42 jp kernel: ? 0xffffffffa0434000 Mar 14 19:09:42 jp kernel: ttusb2_driver_init+0x1e/0x20 [dvb_usb_ttusb2] Mar 14 19:09:42 jp kernel: do_one_initcall+0x3f/0x170 Mar 14 19:09:42 jp kernel: ? __vunmap+0x7c/0xd0 Mar 14 19:09:42 jp kernel: ? kmem_cache_alloc_trace+0x33/0x140 Mar 14 19:09:42 jp kernel: do_init_module+0x5b/0x1cb Mar 14 19:09:42 jp kernel: load_module+0x1f34/0x2270 Mar 14 19:09:42 jp kernel: ? __symbol_put+0x30/0x30 Mar 14 19:09:42 jp kernel: ? kernel_read_file+0x16d/0x190 Mar 14 19:09:42 jp kernel: ? kernel_read_file_from_fd+0x44/0x70 Mar 14 19:09:42 jp kernel: SYSC_finit_module+0xa0/0xb0 Mar 14 19:09:42 jp kernel: SyS_finit_module+0x9/0x10 Mar 14 19:09:42 jp kernel: entry_SYSCALL_64_fastpath+0x13/0x94 Mar 14 19:09:42 jp kernel: RIP: 0033:0x7f4f860fe2b9 Mar 14 19:09:42 jp kernel: RSP: 002b:00007fff501aed28 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 Mar 14 19:09:42 jp kernel: RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 00007f4f860fe2b9 Mar 14 19:09:42 jp kernel: RDX: 0000000000000000 RSI: 00007f4f865e0dbc RDI: 000000000000000d Mar 14 19:09:42 jp kernel: RBP: 00007fff501aed70 R08: 0000000000000000 R09: 0000000000000000 Mar 14 19:09:42 jp kernel: R10: 000000000000000d R11: 0000000000000246 R12: 00007fff501add30 Mar 14 19:09:42 jp kernel: R13: 00005596fbdf4490 R14: 0000000000000005 R15: 00007fff501add10 Mar 14 19:09:42 jp kernel: ---[ end trace a872fa573253a7c8 ]--- It seems that the core of the problem might be the "transfer buffer is not DMA capable", perhaps consequence of some change in memory management? When I have some time, I will try to bisect between 4.7.4 (works) and (4.9.5) to find more precisely when it happened. The problem has been fixed somehow in the meantime, 4.11.7 works well. |