Tool/software: Linux
I am doing development for a BeagleBone Black based system, built with Yocto morty using linux-ti-staging from meta-mono (kernel 4.9.63-ge30fbd4352).
The system optionally supports a USB Wi-Fi dongle based on the RT2800 chipset (with RT chipset 5390, rev 0502, and with RF chipset 5370 — e.g. an Edup EP-N8537).
The system has been working for a while with 3.14.x and 4.4.x kernels.
Recently I've been updating it to a 4.9.x kernel. I've noticed that if it boots with the Wi-Fi device plugged in, about 50% of the time, just after the Wi-Fi initialises, I get an error from cppi41.c about a "Unable to handle kernel NULL pointer dereference at virtual address 00000104". Here is a serial debug console sample output:
Starting Connection Manager Monitor for upgrade file on USB device Starting Inner Range user reset button: [ 19.202475] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx ir-user-reset. [ 19.677027] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. Starting Dropbear SSH server: [ 19.812796] 8021q: 802.1Q VLAN Support v1.8 [ 19.846468] 8021q: adding VLAN 0 to HW filter on device eth0 dropbear. Starting watchdog: [ OK ] [ 20.239074] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin' [ 20.272823] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36 Starting advanced power management daemon: No APM support in kernel (failed.) starting Busybox Periodic Command Scheduler: crond... done. crond[974]: crond (busybox 1.24.1) started, log level 8 Starting syslogd/klogd: [ 20.649326] ------------[ cut here ]------------ [ 20.654211] WARNING: CPU: 0 PID: 4 at /home/teamcity/buildAgent/work/ee889e486c4390d4/poky/build/tmp/work-shared/webtegriti/kernel-source/drivers/dma/cppi41.c:466 cppi41_run_queue+0x100/0x10c [ 20.672058] Modules linked in: 8021q bridge stp llc xt_tcpudp iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_REDIRECT nf_nat_redirect nf_nat nf_conntrack iptable_filter ip_tables x_tables arc4 rt2800usb rt2x00usb rt2800lib rt2x00lib crc_ccitt mac80211 cfg80211 pru_rproc pruss_intc musb_dsps musb_hdrc usbcore phy_am335x phy_generic phy_am335x_control usb_common ti_am335x_adc omap_aes_driver pm33xx wkup_m3_ipc wkup_m3_rproc crypto_engine omap_sham pruss_soc_bus ti_emif_sram musb_am335x rtc_omap ir_lan_bbb omap_wdt ti_am335x_tscadc at24 pruss remoteproc [ 20.724525] CPU: 0 PID: 4 Comm: kworker/0:0 Not tainted 4.9.63-ge30fbd4352 #2 [ 20.731996] Hardware name: Generic AM33XX (Flattened Device Tree) [ 20.738389] Workqueue: pm pm_runtime_work [ 20.742587] Backtrace: [ 20.745167] [<c010b690>] (dump_backtrace) from [<c010b94c>] (show_stack+0x18/0x1c) [ 20.753096] r7:00000009 r6:00000000 r5:c085f348 r4:00000000 [ 20.759032] [<c010b934>] (show_stack) from [<c037852c>] (dump_stack+0x24/0x28) [ 20.766606] [<c0378508>] (dump_stack) from [<c012b4bc>] (__warn+0xe8/0x100) [ 20.773901] [<c012b3d4>] (__warn) from [<c012b58c>] (warn_slowpath_null+0x28/0x30) [ 20.781831] r9:dc4dd410 r8:81004000 r7:dc4dd700 r6:00000078 r5:dc4dd490 r4:da9d5210 [ 20.789943] [<c012b564>] (warn_slowpath_null) from [<c03f84c8>] (cppi41_run_queue+0x100/0x10c) [ 20.798965] [<c03f83c8>] (cppi41_run_queue) from [<c03f8518>] (cppi41_runtime_resume+0x44/0x7c) [ 20.808078] r10:00000008 r9:c01593d8 r8:c044619c r7:00000000 r6:c044619c r5:a00c0013 [ 20.816276] r4:ffffe000 [ 20.818928] [<c03f84d4>] (cppi41_runtime_resume) from [<c04461d0>] (pm_generic_runtime_resume+0x34/0x40) [ 20.828856] r5:00000000 r4:da86b810 [ 20.832600] [<c044619c>] (pm_generic_runtime_resume) from [<c0449080>] (__rpm_callback+0x124/0x26c) [ 20.842077] [<c0448f5c>] (__rpm_callback) from [<c04491f0>] (rpm_callback+0x28/0x88) [ 20.850189] r10:00000008 r9:c01593d8 r8:c044619c r7:00000000 r6:dc145c10 r5:da86b810 [ 20.858387] r4:da86b810 [ 20.861039] [<c04491c8>] (rpm_callback) from [<c0448c14>] (rpm_resume+0x3f4/0x69c) [ 20.868967] r7:00000000 r6:dc145c10 r5:da86b810 r4:c0d13340 [ 20.874894] [<c0448820>] (rpm_resume) from [<c0449b4c>] (pm_runtime_work+0x78/0xe0) [ 20.882915] r9:00000000 r8:c0d0dc88 r7:dcb36c00 r6:00000000 r5:dc028600 r4:da86b8b4 [ 20.891032] [<c0449ad4>] (pm_runtime_work) from [<c01424ec>] (process_one_work+0x1f8/0x424) [ 20.899780] [<c01422f4>] (process_one_work) from [<c0142784>] (worker_thread+0x6c/0x63c) [ 20.908257] r10:00000008 r9:c0d0dc9c r8:c0d13340 r7:dc06c000 r6:c0d0dc88 r5:dc028618 [ 20.916455] r4:dc028600 [ 20.919112] [<c0142718>] (worker_thread) from [<c0148374>] (kthread+0xf8/0x110) [ 20.926770] r10:00000000 r9:00000000 r8:c0142718 r7:dc028600 r6:dc06c000 r5:dc02a400 [ 20.934968] r4:00000000 [ 20.937621] [<c014827c>] (kthread) from [<c0107c38>] (ret_from_fork+0x14/0x3c) [ 20.945186] r8:00000000 r7:00000000 r6:00000000 r5:c014827c r4:dc02a400 [ 20.952202] ---[ end trace e9cb429abb495b1d ]--- [ 20.957060] Unable to handle kernel NULL pointer dereference at virtual address 00000104 [ 20.965533] pgd = c0004000 [ 20.968362] [00000104] *pgd=00000000 [ 20.972109] Internal error: Oops: 817 [#1] PREEMPT ARM [ 20.977487] Modules linked in: 8021q bridge stp llc xt_tcpudp iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_REDIRECT nf_nat_redirect nf_nat nf_conntrack iptable_filter ip_tables x_tables arc4 rt2800usb rt2x00usb rt2800lib rt2x00lib crc_ccitt mac80211 cfg80211 pru_rproc pruss_intc musb_dsps musb_hdrc usbcore phy_am335x phy_generic phy_am335x_control usb_common ti_am335x_adc omap_aes_driver pm33xx wkup_m3_ipc wkup_m3_rproc crypto_engine omap_sham pruss_soc_bus ti_emif_sram musb_am335x rtc_omap ir_lan_bbb omap_wdt ti_am335x_tscadc at24 pruss remoteproc [ 21.029922] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G W 4.9.63-ge30fbd4352 #2 [ 21.038667] Hardware name: Generic AM33XX (Flattened Device Tree) [ 21.045051] Workqueue: pm pm_runtime_work [ 21.049249] task: dc055080 task.stack: dc06c000 [ 21.053991] PC is at cppi41_run_queue+0x74/0x10c [ 21.058825] LR is at add_taint+0x28/0x64 [ 21.062930] pc : [<c03f843c>] lr : [<c012af90>] psr: 600c0093 [ 21.062930] sp : dc06dde8 ip : 00000000 fp : dc06de1c [ 21.074953] r10: 9d041402 r9 : dc4dd410 r8 : 81004000 [ 21.080422] r7 : dc4dd700 r6 : 00000078 r5 : dc4dd490 r4 : da9d5210 [ 21.087256] r3 : 00000200 r2 : 00000100 r1 : 00000200 r0 : 00000100 [ 21.094092] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none [ 21.101655] Control: 10c5387d Table: 9ab54019 DAC: 00000051 [ 21.107670] Process kworker/0:0 (pid: 4, stack limit = 0xdc06c208) [ 21.114140] Stack: (0xdc06dde8 to 0xdc06e000) [ 21.118704] dde0: c0d0e8e8 c085f348 dc0550b0 ffffe000 a00c0013 c044619c [ 21.127271] de00: 00000000 c044619c c01593d8 00000008 dc06de34 dc06de20 c03f8518 c03f83d4 [ 21.135839] de20: da86b810 00000000 dc06de44 dc06de38 c04461d0 c03f84e0 dc06de7c dc06de48 [ 21.144406] de40: c0449080 c04461a8 dc0550b0 dc0553c0 ffffffff da86b810 da86b810 dc145c10 [ 21.152974] de60: 00000000 c044619c c01593d8 00000008 dc06de9c dc06de80 c04491f0 c0448f68 [ 21.161541] de80: c0d13340 da86b810 dc145c10 00000000 dc06dedc dc06dea0 c0448c14 c04491d4 [ 21.170109] dea0: da8eec40 00000004 dc06df0c dc06deb8 c06379c0 c014deb0 da86b8b4 dc028600 [ 21.178676] dec0: 00000000 dcb36c00 c0d0dc88 00000000 dc06deec dc06dee0 c0449b4c c044882c [ 21.187244] dee0: dc06df24 dc06def0 c01424ec c0449ae0 dc06c000 c0d13340 c0d0dc9c dc028600 [ 21.195811] df00: dc028618 c0d0dc88 dc06c000 c0d13340 c0d0dc9c 00000008 dc06df5c dc06df28 [ 21.204378] df20: c0142784 c0142300 dc028600 c0d0dccc 00000000 00000000 dc02a400 dc06c000 [ 21.212945] df40: dc028600 c0142718 00000000 00000000 dc06dfac dc06df60 c0148374 c0142724 [ 21.221513] df60: dc06df60 00000000 c01394d0 dc028600 00000000 dc06df74 dc06df74 00000000 [ 21.230080] df80: dc06df80 dc06df80 dc06dfac dc02a400 c014827c 00000000 00000000 00000000 [ 21.238647] dfa0: 00000000 dc06dfb0 c0107c38 c0148288 00000000 00000000 00000000 00000000 [ 21.247214] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 21.255781] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 21.264342] Backtrace: [ 21.266905] [<c03f83c8>] (cppi41_run_queue) from [<c03f8518>] (cppi41_runtime_resume+0x44/0x7c) [ 21.276018] r10:00000008 r9:c01593d8 r8:c044619c r7:00000000 r6:c044619c r5:a00c0013 [ 21.284217] r4:ffffe000 [ 21.286868] [<c03f84d4>] (cppi41_runtime_resume) from [<c04461d0>] (pm_generic_runtime_resume+0x34/0x40) [ 21.296797] r5:00000000 r4:da86b810 [ 21.300540] [<c044619c>] (pm_generic_runtime_resume) from [<c0449080>] (__rpm_callback+0x124/0x26c) [ 21.310018] [<c0448f5c>] (__rpm_callback) from [<c04491f0>] (rpm_callback+0x28/0x88) [ 21.318129] r10:00000008 r9:c01593d8 r8:c044619c r7:00000000 r6:dc145c10 r5:da86b810 [ 21.326328] r4:da86b810 [ 21.328979] [<c04491c8>] (rpm_callback) from [<c0448c14>] (rpm_resume+0x3f4/0x69c) [ 21.336907] r7:00000000 r6:dc145c10 r5:da86b810 r4:c0d13340 [ 21.342835] [<c0448820>] (rpm_resume) from [<c0449b4c>] (pm_runtime_work+0x78/0xe0) [ 21.350856] r9:00000000 r8:c0d0dc88 r7:dcb36c00 r6:00000000 r5:dc028600 r4:da86b8b4 [ 21.358968] [<c0449ad4>] (pm_runtime_work) from [<c01424ec>] (process_one_work+0x1f8/0x424) [ 21.367717] [<c01422f4>] (process_one_work) from [<c0142784>] (worker_thread+0x6c/0x63c) [ 21.376192] r10:00000008 r9:c0d0dc9c r8:c0d13340 r7:dc06c000 r6:c0d0dc88 r5:dc028618 [ 21.384391] r4:dc028600 [ 21.387042] [<c0142718>] (worker_thread) from [<c0148374>] (kthread+0xf8/0x110) [ 21.394699] r10:00000000 r9:00000000 r8:c0142718 r7:dc028600 r6:dc06c000 r5:dc02a400 [ 21.402897] r4:00000000 [ 21.405550] [<c014827c>] (kthread) from [<c0107c38>] (ret_from_fork+0x14/0x3c) [ 21.413115] r8:00000000 r7:00000000 r6:00000000 r5:c014827c r4:dc02a400 [ 21.420136] Code: e594308c e3a00c01 e5942088 e3a01c02 (e5823004) [ 21.426517] ---[ end trace e9cb429abb495b1e ]--- [ 21.431354] note: kworker/0:0[4] exited with preempt_count 1
This repeats apparently indefinitely, until the watchdog resets the system. A longer console capture is attached.
