A few days ago, Linux 3.2.19 was released. As usual I’ve updated my Raspberry Pi kernel. This one has a few additional changes on top of just the 3.2.18 to 3.2.19 update:
- Reverted a problematic SDHCI patch that broke SD card access for lots of people.
- Added lots of USB webcam modules.
- Added some USB wifi adapter modules from the kernel staging directory.
As I seem to be doing this quite often and my kernels are becoming quite popular, I thought it best to give them their own project page. This means the link to the page will stay the same for every revision.
Grab your freshly baked Raspberry Pi 3.2.19 kernel today!
Got a kernel panic with a crappy “gspca” USB webcam. After saving a dozen or so frame captures with “fswebcam” i got this at the “Capturing Frame” stage:
[ 875.955347] Unable to handle kernel paging request at virtual address ffd77fff
[ 875.967279] pgd = c0004000
[ 875.972339] [ffd77fff] *pgd=0d844811, *pte=00000000, *ppte=00000000
[ 875.981100] Internal error: Oops: 7 [#1]
[ 875.987448] Modules linked in: snd_usb_audio snd_pcm snd_timer snd_page_alloc snd_hwdep snd_usbmidi_lib snd_rawmidi snd_
seq_device snd soundcore gspca_sonixj gspca_main videodev media fuse nls_utf8 nls_cp437 vfat fat evdev spidev usbhid smsc95
xx usbnet hid leds_gpio spi_bcm2708 i2c_bcm2708
[ 876.024012] CPU: 0 Not tainted (3.2.19-rpi1+ #3)
[ 876.031724] PC is at sd_pkt_scan+0x90/0x2e8 [gspca_sonixj]
[ 876.039981] LR is at isoc_irq+0xa8/0xe4 [gspca_main]
[ 876.047663] pc : [] lr : [] psr: 60000193
[ 876.047672] sp : c047ddc0 ip : cda49c14 fp : 00000017
[ 876.064685] r10: 00000001 r9 : 00000000 r8 : bf10f2b4
[ 876.072727] r7 : 00000400 r6 : ffd77fff r5 : 00000000 r4 : cce9e000
[ 876.082056] r3 : 0000006d r2 : 00000026 r1 : ffd78000 r0 : cce9e000
[ 876.091301] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 876.104319] Control: 00c5387d Table: 0db08008 DAC: 00000017
[ 876.113037] Process swapper (pid: 0, stack limit = 0xc047c268)
[ 876.121869] Stack: (0xc047ddc0 to 0xc047e000)
[ 876.129251] ddc0: cd963800 cce9e000 00000000 cd963800 bf10f2b4 bf0f46dc cd963800 00000000
[ 876.143617] dde0: cd90a6c0 00000000 cd90a6c0 00000000 cda0c260 c0214b20 cd963800 cd9fde40
[ 876.158286] de00: cce67e00 c0231f9c 00000000 cce67e00 cd911500 cd979420 cce67fa8 cd9fde40
[ 876.173013] de20: 000001a8 c0232e80 00000000 cd911500 ce8405c0 cd979420 cd911500 cd9fde40
[ 876.187973] de40: cce67e00 ce8405c0 00000001 c0233acc 00000001 cd911500 ce8405c0 cd911500
[ 876.203072] de60: cd9fde40 ce8405c0 cd979420 00000000 c048c788 00000002 00000023 c0234044
[ 876.218207] de80: 00000000 c0489250 c0488d58 c0488d58 000000cb 00000000 c0489250 00000006
[ 876.233342] dea0: 00000000 cd9fde40 00000040 00004008 c048c788 00000000 00000000 c0234524
[ 876.248692] dec0: 00000002 00000001 02000008 cd9fde40 cd9fdf00 c0234614 c0232428 cd90a6c0
[ 876.264232] dee0: 60000193 00000001 c047dfa4 c0232434 c0232428 c0214680 cd9067e0 c047c000
[ 876.280032] df00: 0000004b c0068c18 00000000 00000000 00000000 000000cb c0489250 c048c788
[ 876.296052] df20: c047c000 f200b200 c047dfa4 00004008 410fb767 00473908 00000000 c0068e2c
[ 876.312126] df40: 00020000 c048c788 00000000 c006b1f4 0000004b c0068590 00000055 c000d9f4
[ 876.328368] df60: c000dad4 c000dad8 60000013 c0328fd4 ffffffed 00000000 c047dfb8 00000000
[ 876.344721] df80: c047c000 c0482d64 c04a7764 c06e6960 00004008 410fb767 00473908 00000000
[ 876.361062] dfa0: 00000000 c047dfb8 c000dad4 c000dad8 60000013 ffffffff c000dab4 c000dc7c
[ 876.377388] dfc0: c047ec2c c04a76e0 c0474b2c c045c70c c045c160 00000000 c0474b2c 271aef0f
[ 876.393700] dfe0: 00000000 00c5387d c047e048 c0474b28 c0482d5c 00008040 00000000 00000000
[ 876.410096] [] (sd_pkt_scan+0x90/0x2e8 [gspca_sonixj]) from [] (isoc_irq+0xa8/0xe4 [gspca_main])
[ 876.428957] [] (isoc_irq+0xa8/0xe4 [gspca_main]) from [] (usb_hcd_giveback_urb+0xa0/0xec)
[ 876.447182] [] (usb_hcd_giveback_urb+0xa0/0xec) from [] (_complete+0x1d0/0x1e4)
[ 876.464487] [] (_complete+0x1d0/0x1e4) from [] (update_isoc_urb_state+0x20c/0x220)
[ 876.482075] [] (update_isoc_urb_state+0x20c/0x220) from [] (handle_hc_xfercomp_intr+0x33c/0x370)
[ 876.500881] [] (handle_hc_xfercomp_intr+0x33c/0x370) from [] (dwc_otg_hcd_handle_hc_n_intr+0x190/0x6
2c)
[ 876.520297] [] (dwc_otg_hcd_handle_hc_n_intr+0x190/0x62c) from [] (dwc_otg_hcd_handle_hc_intr+0x44/0
x68)
[ 876.539790] [] (dwc_otg_hcd_handle_hc_intr+0x44/0x68) from [] (dwc_otg_hcd_handle_intr+0xcc/0xfc)
[ 876.558662] [] (dwc_otg_hcd_handle_intr+0xcc/0xfc) from [] (dwc_otg_hcd_irq+0xc/0x18)
[ 876.576443] [] (dwc_otg_hcd_irq+0xc/0x18) from [] (usb_hcd_irq+0x34/0x88)
[ 876.593161] [] (usb_hcd_irq+0x34/0x88) from [] (handle_irq_event_percpu+0xa0/0x274)
[ 876.610727] [] (handle_irq_event_percpu+0xa0/0x274) from [] (handle_irq_event+0x40/0x5c)
[ 876.628755] [] (handle_irq_event+0x40/0x5c) from [] (handle_level_irq+0xc4/0xec)
[ 876.646069] [] (handle_level_irq+0xc4/0xec) from [] (generic_handle_irq+0x2c/0x40)
[ 876.663570] [] (generic_handle_irq+0x2c/0x40) from [] (handle_IRQ+0x60/0x84)
[ 876.680570] [] (handle_IRQ+0x60/0x84) from [] (__irq_svc+0x34/0xc0)
[ 876.696758] [] (__irq_svc+0x34/0xc0) from [] (default_idle+0x24/0x28)
[ 876.713091] [] (default_idle+0x24/0x28) from [] (cpu_idle+0x54/0xac)
[ 876.729316] [] (cpu_idle+0x54/0xac) from [] (start_kernel+0x29c/0x2ec)
[ 876.745730] Code: e5943854 e0833007 e5843854 ea00000d (e7d63005)
[ 876.756085] ---[ end trace ef892af649135a64 ]---
[ 876.764830] Kernel panic - not syncing: Fatal exception in interrupt
[ 876.775357] [] (unwind_backtrace+0x0/0xe0) from [] (panic+0x68/0x1a4)
[ 876.791598] [] (panic+0x68/0x1a4) from [] (die+0x304/0x378)
[ 876.803116] [] (die+0x304/0x378) from [] (__do_kernel_fault.part.3+0x54/0x74)
[ 876.820011] [] (__do_kernel_fault.part.3+0x54/0x74) from [] (do_page_fault.part.4+0x2a0/0x2c0)
[ 876.838396] [] (do_page_fault.part.4+0x2a0/0x2c0) from [] (do_page_fault+0x84/0x90)
[ 876.855782] [] (do_page_fault+0x84/0x90) from [] (do_DataAbort+0x34/0x98)
[ 876.872306] [] (do_DataAbort+0x34/0x98) from [] (__dabt_svc+0x38/0x60)
[ 876.888531] Exception stack(0xc047dd78 to 0xc047ddc0)
[ 876.897545] dd60: cce9e000 ffd78000
[ 876.913358] dd80: 00000026 0000006d cce9e000 00000000 ffd77fff 00000400 bf10f2b4 00000000
[ 876.929097] dda0: 00000001 00000017 cda49c14 c047ddc0 bf0f46dc bf10f344 60000193 ffffffff
[ 876.944945] [] (__dabt_svc+0x38/0x60) from [] (sd_pkt_scan+0x90/0x2e8 [gspca_sonixj])
[ 876.962253] [] (sd_pkt_scan+0x90/0x2e8 [gspca_sonixj]) from [] (isoc_irq+0xa8/0xe4 [gspca_main])
[ 876.980530] [] (isoc_irq+0xa8/0xe4 [gspca_main]) from [] (usb_hcd_giveback_urb+0xa0/0xec)
[ 876.998322] [] (usb_hcd_giveback_urb+0xa0/0xec) from [] (_complete+0x1d0/0x1e4)
[ 877.015271] [] (_complete+0x1d0/0x1e4) from [] (update_isoc_urb_state+0x20c/0x220)
[ 877.032487] [] (update_isoc_urb_state+0x20c/0x220) from [] (handle_hc_xfercomp_intr+0x33c/0x370)
[ 877.050968] [] (handle_hc_xfercomp_intr+0x33c/0x370) from [] (dwc_otg_hcd_handle_hc_n_intr+0x190/0x6
2c)
[ 877.070100] [] (dwc_otg_hcd_handle_hc_n_intr+0x190/0x62c) from [] (dwc_otg_hcd_handle_hc_intr+0x44/0
x68)
[ 877.089330] [] (dwc_otg_hcd_handle_hc_intr+0x44/0x68) from [] (dwc_otg_hcd_handle_intr+0xcc/0xfc)
[ 877.107934] [] (dwc_otg_hcd_handle_intr+0xcc/0xfc) from [] (dwc_otg_hcd_irq+0xc/0x18)
[ 877.125516] [] (dwc_otg_hcd_irq+0xc/0x18) from [] (usb_hcd_irq+0x34/0x88)
[ 877.142271] [] (usb_hcd_irq+0x34/0x88) from [] (handle_irq_event_percpu+0xa0/0x274)
[ 877.159972] [] (handle_irq_event_percpu+0xa0/0x274) from [] (handle_irq_event+0x40/0x5c)
[ 877.178090] [] (handle_irq_event+0x40/0x5c) from [] (handle_level_irq+0xc4/0xec)
[ 877.195478] [] (handle_level_irq+0xc4/0xec) from [] (generic_handle_irq+0x2c/0x40)
[ 877.213059] [] (generic_handle_irq+0x2c/0x40) from [] (handle_IRQ+0x60/0x84)
[ 877.230126] [] (handle_IRQ+0x60/0x84) from [] (__irq_svc+0x34/0xc0)
[ 877.246416] [] (__irq_svc+0x34/0xc0) from [] (default_idle+0x24/0x28)
[ 877.262876] [] (default_idle+0x24/0x28) from [] (cpu_idle+0x54/0xac)
[ 877.279246] [] (cpu_idle+0x54/0xac) from [] (start_kernel+0x29c/0x2ec)
This is most likely related to the poor quality USB host controller driver we have for the Raspberry Pi at the moment. There probably isn’t much we can do about it. 🙁