From: Frank Schäfer <fschaefer.oss@googlemail.com>
To: lkp@lists.01.org
Subject: Re: [media/em28xx] BUG: unable to handle kernel
Date: Fri, 19 Sep 2014 20:57:26 +0200 [thread overview]
Message-ID: <541C7C96.2050306@googlemail.com> (raw)
In-Reply-To: <20140919014124.GA8326@localhost>
[-- Attachment #1: Type: text/plain, Size: 13606 bytes --]
Hi Fengguang,
thank you for reporting this issue.
Am 19.09.2014 um 03:41 schrieb Fengguang Wu:
> Greetings,
>
> 0day kernel testing robot got the below dmesg and the first bad commit is
>
> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>
> commit a5c075cfd2386a4f3ab4f8ed2830ebee557d4b3f
> Author: Frank Schaefer <fschaefer.oss@googlemail.com>
> AuthorDate: Mon Mar 24 16:33:25 2014 -0300
> Commit: Mauro Carvalho Chehab <m.chehab@samsung.com>
> CommitDate: Fri May 23 13:44:42 2014 -0300
>
> [media] em28xx: move fields wq_trigger and streaming_started from struct em28xx to struct em28xx_audio
>
> Both wq_trigger and stream_started are used only to control the em28xx
> alsa streaming. They don't belong to em28xx common struct.
>
> Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This patch affects the em28xx-alsa module (em28xx-audio.c) only.
Now take a look at your kernel config:
...
#
# Webcam, TV (analog/digital) USB devices
#
CONFIG_VIDEO_EM28XX=y
CONFIG_VIDEO_EM28XX_V4L2=y
# CONFIG_VIDEO_EM28XX_ALSA is not set
CONFIG_VIDEO_EM28XX_DVB=y
CONFIG_VIDEO_EM28XX_RC=y
...
The em28xx-alsa module is disabled.
>
> Attached dmesg for the parent commit, too. It looks like the parent is
> actually clean, just that the rcu-tortuture tests take too long time.
>
> +------------------------------------------+------------+------------+---------------+
> | | 3319e6f839 | a5c075cfd2 | next-20140917 |
> +------------------------------------------+------------+------------+---------------+
> | boot_successes | 0 | 0 | 0 |
> | boot_failures | 80 | 20 | 11 |
> | BUG:kernel_boot_hang | 80 | 1 | 1 |
> | BUG:unable_to_handle_kernel | 0 | 19 | 10 |
> | Oops | 0 | 19 | 10 |
> | EIP_is_at_af9005_usb_module_init | 0 | 19 | 10 |
> | Kernel_panic-not_syncing:Fatal_exception | 0 | 19 | 10 |
> | backtrace:af9005_usb_module_init | 0 | 19 | 10 |
> | backtrace:kernel_init_freeable | 0 | 19 | 10 |
> | backtrace:_usb_module_init | 0 | 19 | 10 |
> +------------------------------------------+------------+------------+---------------+
>
> [ 8.528015] usbcore: registered new interface driver dvb_usb_ttusb2
> [ 8.529751] usbcore: registered new interface driver dvb_usb_af9005
> [ 8.529751] usbcore: registered new interface driver dvb_usb_af9005
> [ 8.531584] BUG: unable to handle kernel
> [ 8.531584] BUG: unable to handle kernel paging requestpaging request at 02e00000
> at 02e00000
> [ 8.533385] IP:
> [ 8.533385] IP: [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9d
> [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9d
And this tells us what is going wrong:
(gdb) list *(af9005_usb_module_init+0x83)
0x2d11 is in af9005_usb_module_init
(drivers/media/usb/dvb-usb/af9005.c:1092).
1087 if (rc_decode == NULL || rc_keys == NULL || rc_keys_size
== NULL) {
1088 err("af9005_rc_decode function not found,
disabling remote");
1089 af9005_properties.rc.legacy.rc_query = NULL;
1090 } else {
1091 af9005_properties.rc.legacy.rc_map_table = rc_keys;
1092 af9005_properties.rc.legacy.rc_map_size =
*rc_keys_size;
1093 }
1094
1095 return 0;
1096 }
So it happens in line 1092 when rc_keys_size is accessed.
According to your kernel config you have
CONFIG_MODULES disabled
CONFIG_DVB_USB_AF9005 enabled
CONFIG_DVB_USB_AF9005_REMOTE disabled
So af9005 is compiled in without remote control support.
Thus we should have hit the "if"-path, which also prints a message about
the missing remote control support.
Instead, we have hit the "else" path, which means that rc_decode,
rc_keys and rc_keys_size are all != NULL, although they should be NULL.
You can verify this by enabling CONFIG_DVB_USB_AF9005_REMOTE.
That makes the issue disappear.
Now let's go a few lines up to see where these pointers come from:
1084 rc_decode = symbol_request(af9005_rc_decode);
1085 rc_keys = symbol_request(rc_map_af9005_table);
1086 rc_keys_size = symbol_request(rc_map_af9005_table_size);
So symbol_request() returns pointers.!= NULL
A closer look at the definition of symbol_request() shows, that it does
nothing if CONFIG_MODULES is disabled (it just returns its argument).
One possibility to fix this bug would be to embrace these three lines with
#ifdef CONFIG_DVB_USB_AF9005_REMOTE
...
#endif
> [ 8.535613] *pde = 00000000
> [ 8.535613] *pde = 00000000
>
> [ 8.536416] Oops: 0000 [#1]
> [ 8.536416] Oops: 0000 [#1] PREEMPT PREEMPT DEBUG_PAGEALLOCDEBUG_PAGEALLOC
>
> [ 8.537863] CPU: 0 PID: 1 Comm: swapper Not tainted 3.15.0-rc6-00151-ga5c075c #1
> [ 8.537863] CPU: 0 PID: 1 Comm: swapper Not tainted 3.15.0-rc6-00151-ga5c075c #1
> [ 8.539827] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
> [ 8.539827] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
> [ 8.541519] task: 89c9a670 ti: 89c9c000 task.ti: 89c9c000
> [ 8.541519] task: 89c9a670 ti: 89c9c000 task.ti: 89c9c000
> [ 8.541519] EIP: 0060:[<7d9d67c6>] EFLAGS: 00010206 CPU: 0
> [ 8.541519] EIP: 0060:[<7d9d67c6>] EFLAGS: 00010206 CPU: 0
> [ 8.541519] EIP is at af9005_usb_module_init+0x6b/0x9d
> [ 8.541519] EIP is at af9005_usb_module_init+0x6b/0x9d
> [ 8.541519] EAX: 02e00000 EBX: 00000000 ECX: 00000006 EDX: 00000000
> [ 8.541519] EAX: 02e00000 EBX: 00000000 ECX: 00000006 EDX: 00000000
> [ 8.541519] ESI: 00000000 EDI: 7da33ec8 EBP: 89c9df30 ESP: 89c9df2c
> [ 8.541519] ESI: 00000000 EDI: 7da33ec8 EBP: 89c9df30 ESP: 89c9df2c
> [ 8.541519] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
> [ 8.541519] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
> [ 8.541519] CR0: 8005003b CR2: 02e00000 CR3: 05a54000 CR4: 00000690
> [ 8.541519] CR0: 8005003b CR2: 02e00000 CR3: 05a54000 CR4: 00000690
> [ 8.541519] Stack:
> [ 8.541519] Stack:
> [ 8.541519] 7d9d675b
> [ 8.541519] 7d9d675b 89c9df90 89c9df90 7d992a49 7d992a49 7d7d5914 7d7d5914 89c9df4c 89c9df4c 7be3a800 7be3a800 7d08c58c 7d08c58c 8a4c3968 8a4c3968
>
> [ 8.541519] 89c9df80
> [ 8.541519] 89c9df80 7be3a966 7be3a966 00000192 00000192 00000006 00000006 00000006 00000006 7d7d3ff4 7d7d3ff4 8a4c397a 8a4c397a 00000200 00000200
>
> [ 8.541519] 7d6b1280
> [ 8.541519] 7d6b1280 8a4c3979 8a4c3979 00000006 00000006 000009a6 000009a6 7da32db8 7da32db8 b13eec81 b13eec81 00000006 00000006 000009a6 000009a6
>
> [ 8.541519] Call Trace:
> [ 8.541519] Call Trace:
> [ 8.541519] [<7d9d675b>] ? ttusb2_driver_init+0x16/0x16
> [ 8.541519] [<7d9d675b>] ? ttusb2_driver_init+0x16/0x16
> [ 8.541519] [<7d992a49>] do_one_initcall+0x77/0x106
> [ 8.541519] [<7d992a49>] do_one_initcall+0x77/0x106
> [ 8.541519] [<7be3a800>] ? parameqn+0x2/0x35
> [ 8.541519] [<7be3a800>] ? parameqn+0x2/0x35
> [ 8.541519] [<7be3a966>] ? parse_args+0x113/0x25c
> [ 8.541519] [<7be3a966>] ? parse_args+0x113/0x25c
> [ 8.541519] [<7d992bc2>] kernel_init_freeable+0xea/0x167
> [ 8.541519] [<7d992bc2>] kernel_init_freeable+0xea/0x167
> [ 8.541519] [<7cf01070>] kernel_init+0x8/0xb8
> [ 8.541519] [<7cf01070>] kernel_init+0x8/0xb8
> [ 8.541519] [<7cf27ec0>] ret_from_kernel_thread+0x20/0x30
> [ 8.541519] [<7cf27ec0>] ret_from_kernel_thread+0x20/0x30
> [ 8.541519] [<7cf01068>] ? rest_init+0x10c/0x10c
> [ 8.541519] [<7cf01068>] ? rest_init+0x10c/0x10c
> [ 8.541519] Code:
> [ 8.541519] Code: 08 08 c2 c2 c7 c7 05 05 44 44 ed ed f9 f9 7d 7d 00 00 00 00 e0 e0 02 02 c7 c7 05 05 40 40 ed ed f9 f9 7d 7d 00 00 00 00 e0 e0 02 02 c7 c7 05 05 3c 3c ed ed f9 f9 7d 7d 00 00 00 00 e0 e0 02 02 75 75 1f 1f b8 b8 00 00 00 00 e0 e0 02 02 85 85 c0 c0 74 74 16 16 <a1> <a1> 00 00 00 00 e0 e0 02 02 c7 c7 05 05 54 54 84 84 8e 8e 7d 7d 00 00 00 00 e0 e0 02 02 a3 a3 58 58 84 84 8e 8e 7d 7d eb eb
>
> [ 8.541519] EIP: [<7d9d67c6>]
> [ 8.541519] EIP: [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9daf9005_usb_module_init+0x6b/0x9d SS:ESP 0068:89c9df2c
> SS:ESP 0068:89c9df2c
> [ 8.541519] CR2: 0000000002e00000
> [ 8.541519] CR2: 0000000002e00000
> [ 8.541519] ---[ end trace 768b6faf51370fc7 ]---
> [ 8.541519] ---[ end trace 768b6faf51370fc7 ]---
>
> git bisect start v3.16 v3.15 --
> git bisect bad 5170a3b24a9141e2349a3420448743b7c68f2223 # 22:58 0- 1 Merge branch 'akpm' (patches from Andrew Morton)
> git bisect bad 1ad96bb0a20fa26b952b2250e89d14b6397bf618 # 23:04 0- 1 Merge tag 'gpio-v3.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
> git bisect bad 412dd3a6daf0cadce1b2d6a34fa3713f40255579 # 23:16 0- 1 Merge tag 'xfs-for-linus-3.16-rc1' of git://oss.sgi.com/xfs/xfs
> git bisect bad b1cce8032f6abe900b078d24f3c3938726528f97 # 23:23 0- 2 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6
> git bisect bad da85d191f58a44e149a7c07dbae78b3042909798 # 23:29 0- 19 Merge branch 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
> git bisect bad f8409abdc592e13cefbe4e4a24a84b3d5741e85f # 23:38 0- 6 Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
> git bisect bad ed81e780a7dd5698a986f246fad6a1d8d0b6f9ce # 23:44 0- 20 Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
> git bisect bad 3f17ea6dea8ba5668873afa54628a91aaa3fb1c0 # 23:55 1- 19 Merge branch 'next' (accumulated 3.16 merge window patches) into master
> git bisect good 49eb7b0750d9483c74e9c14ae6ea1e9d62481c3c # 00:38 20+ 20 Merge tag 'tty-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty into next
> git bisect bad 535ec214e23adaf72c775938e9e9c6c1cf6fc5b9 # 07:40 0- 2 [media] mt9p031: Fix BLC configuration restore when disabling test pattern
> git bisect good 2c52a2fce0f00479548a076d900d1a2ddd001c27 # 21:01 20+ 20 [media] em28xx: move struct v4l2_clk *clk from struct em28xx to struct v4l2
> git bisect bad a5c075cfd2386a4f3ab4f8ed2830ebee557d4b3f # 22:07 0- 9 [media] em28xx: move fields wq_trigger and streaming_started from struct em28xx to struct em28xx_audio
> git bisect good 58159171c7f201e5d6ea2666c7b3857e782a2861 # 22:52 20+ 20 [media] em28xx: move progressive/interlaced fields from struct em28xx to struct v4l2
> git bisect good 3854b0d847d558bdc820b93ae8a93c0923d0211d # 23:31 20+ 20 [media] em28xx: move tuner frequency field from struct em28xx to struct v4l2
> git bisect good 3319e6f839cf94e33fbad27a21fc4c64f6cec74f # 00:14 20+ 20 [media] em28xx: remove field tuner_addr from struct em28xx
> # first bad commit: [a5c075cfd2386a4f3ab4f8ed2830ebee557d4b3f] [media] em28xx: move fields wq_trigger and streaming_started from struct em28xx to struct em28xx_audio
> git bisect good 3319e6f839cf94e33fbad27a21fc4c64f6cec74f # 00:55 60+ 80 [media] em28xx: remove field tuner_addr from struct em28xx
> git bisect bad 76c2c6dc46fbb5bdd73571ebd0897696c5ab4d73 # 00:58 0- 11 Add linux-next specific files for 20140917
> git bisect bad 4d046e96046faac456f4f5c94c152c52a9c51a3a # 01:09 2- 57 Add linux-next specific files for 20140918
Something went wrong during your bisection.
I can reproduce this issue with kernel v3.15, too, which doesn't have
the above commit yet.
Regards,
Frank Schäfer
>
> This script may reproduce the error.
>
> ----------------------------------------------------------------------------
> #!/bin/bash
>
> kernel=$1
> initrd=quantal-core-i386.cgz
>
> wget --no-clobber https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd
>
> kvm=(
> qemu-system-x86_64
> -cpu kvm64
> -enable-kvm
> -kernel $kernel
> -initrd $initrd
> -m 320
> -smp 2
> -net nic,vlan=1,model=e1000
> -net user,vlan=1
> -boot order=nc
> -no-reboot
> -watchdog i6300esb
> -rtc base=localtime
> -serial stdio
> -display none
> -monitor null
> )
>
> append=(
> hung_task_panic=1
> earlyprintk=ttyS0,115200
> debug
> apic=debug
> sysrq_always_enabled
> rcupdate.rcu_cpu_stall_timeout=100
> panic=-1
> softlockup_panic=1
> nmi_watchdog=panic
> oops=panic
> load_ramdisk=2
> prompt_ramdisk=0
> console=ttyS0,115200
> console=tty0
> vga=normal
> root=/dev/ram0
> rw
> drbd.minor_count=8
> )
>
> "${kvm[@]}" --append "${append[*]}"
> ----------------------------------------------------------------------------
>
> Thanks,
> Fengguang
>
>
> _______________________________________________
> LKP mailing list
> LKP(a)linux.intel.com
[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 15214 bytes --]
next prev parent reply other threads:[~2014-09-19 18:57 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-19 1:41 [media/em28xx] BUG: unable to handle kernel Fengguang Wu
2014-09-19 1:41 ` Fengguang Wu
2014-09-19 18:57 ` Frank Schäfer [this message]
2014-09-19 19:01 ` Frank Schäfer
2014-09-19 19:01 ` Frank Schäfer
2014-09-19 19:21 ` [media/dvb_usb_af9005] BUG: unable to handle kernel paging request (WAS: [media/em28xx] BUG: unable to handle kernel) Frank Schäfer
2014-09-19 19:22 ` Frank Schäfer
2014-09-19 19:55 ` Luca Olivetti
2014-09-19 19:55 ` Luca Olivetti
2014-09-20 11:18 ` Antti Palosaari
2014-09-20 11:18 ` Antti Palosaari
2014-09-23 18:52 ` Frank Schäfer
2014-09-23 18:52 ` Frank Schäfer
2014-09-23 21:03 ` Luca Olivetti
2014-09-23 21:03 ` Luca Olivetti
2014-09-25 13:53 ` Frank Schäfer
2014-09-25 13:54 ` Frank Schäfer
2014-09-25 15:57 ` Luca Olivetti
2014-09-25 15:57 ` Luca Olivetti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=541C7C96.2050306@googlemail.com \
--to=fschaefer.oss@googlemail.com \
--cc=lkp@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.