This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: "rmmod ti_cpsw" causes null reference

Part Number: AM3352


Tool/software: Linux

When i execute 'rmmod ti_cpsw' the operations fails with the following in dmesg:

[   40.401431] bond0: Releasing active interface eth1
[   40.456776] bond0: Releasing backup interface eth0
[   40.489720] Unable to handle kernel NULL pointer dereference at virtual addre
ss 0000000d
[   40.489753] pgd = dd454000
[   40.489767] [0000000d] *pgd=00000000
[   40.489797] Internal error: Oops: 5 [#1] SMP ARM
[   40.489813] Modules linked in: usb_f_acm u_serial libcomposite udc_core bondi
ng smsc davinci_mdio evdev musb_dsps joydev musb_hdrc ti_am335x_adc kfifo_buf in
dustrialio tilcdc drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops d
rm ti_cpsw(-) cpsw_ale cpsw_common davinci_cpdma omap_rng omap_aes omap_sham cfb
fillrect cfbimgblt cfbcopyarea c_can_platform c_can can_dev rng_core 8250_omap m
usb_am335x rtc_omap cpufreq_dt ti_am335x_tsc thermal_sys ti_am335x_tscadc omap_w
dt leds_gpio hwmon pwm_bl led_class ledtrig_heartbeat autofs4
[   40.490128] CPU: 0 PID: 378 Comm: rmmod Tainted: G        W       4.4.93-dirt
y #22
[   40.490143] Hardware name: Generic AM33XX (Flattened Device Tree)
[   40.490157] task: dd180d40 ti: dd44c000 task.ti: dd44c000
[   40.490190] PC is at omap_device_idle+0x18/0x9c
[   40.490207] LR is at _od_runtime_suspend+0x24/0x28
[   40.490223] pc : [<c0029560>]    lr : [<c0029608>]    psr: a00f0013
sp : dd44dc68  ip : dd44dc88  fp : dd44dc84
[   40.490238] r10: c08ca100  r9 : 00000000  r8 : 00000008
[   40.490250] r7 : 00000000  r6 : 00000000  r5 : dd1d98a0  r4 : dd1d9810
[   40.490263] r3 : 00000000  r2 : 00000000  r1 : dd1811a8  r0 : dd1d9800
[   40.490279] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   40.490293] Control: 10c5387d  Table: 9d454019  DAC: 00000051
[   40.490307] Process rmmod (pid: 378, stack limit = 0xdd44c218)
[   40.490320] Stack: (0xdd44dc68 to 0xdd44e000)
[   40.490342] dc60:                   dd1d9810 dd1d98a0 c00295e4 00000000 dd44d
c9c dd44dc88
[   40.490363] dc80: c0029608 c0029554 dd1d9810 dd1d98a0 dd44dcbc dd44dca0 c03c7
350 c00295f0
[   40.490384] dca0: dd1d9810 c00295e4 c08ca100 00000000 dd44dcdc dd44dcc0 c03c7
3ac c03c7328
[   40.490405] dcc0: dd1d9810 c00295e4 c08ca100 00000000 dd44dd2c dd44dce0 c03c7
fd8 c03c7390
[   40.490426] dce0: c064d518 0000000c dd1d994c 600f0093 dd44dd2c dd44dd00 c0082
b54 c064d4dc
[   40.490446] dd00: 00000000 dd1d9810 00000000 00000004 00000000 dd1d994c dd44c
000 00000000
[   40.490467] dd20: dd44dd54 dd44dd30 c03c8568 c03c7ee0 dd1d9810 00000004 dd1d9
8a0 600f0013
[   40.490488] dd40: c112e770 dd44c000 dd44dd74 dd44dd58 c03c7844 c03c8460 dd1d9
810 dd1d9810
[   40.490509] dd60: c09201f0 de10c010 dd44dd8c dd44dd78 bf1d21a8 c03c77e8 dd1d9
810 dd1d9810
[   40.490530] dd80: dd44dda4 dd44dd90 c03c0170 bf1d2180 dd1d9810 bf1d2bb0 dd44d
dbc dd44dda8
[   40.490551] dda0: c03be2f0 c03c0154 dd1d9844 dd1d9810 dd44ddd4 dd44ddc0 c03be
38c c03be258
[   40.490572] ddc0: de02a84c dd1d9810 dd44ddf4 dd44ddd8 c03bdb70 c03be370 dd1d9
810 00000000
[   40.490593] dde0: dd1d9818 de10c010 dd44de2c dd44ddf8 c03baad4 c03bda90 00000
000 de0f60c0
[   40.490615] de00: dd44de68 00000000 c03ba590 dd1d9810 00000000 bf0a9744 00000
081 c000fce4
[   40.490636] de20: dd44de44 dd44de30 c03bac28 c03ba9cc 00000000 00000000 dd44d
e54 dd44de48
[   40.490657] de40: c04cecbc c03bac20 dd44de64 dd44de58 bf0a9758 c04cecb4 dd44d
e8c dd44de68
[   40.490677] de60: c03ba690 bf0a9750 de0f60c0 dd229670 dd25d000 dd25d000 de10c
010 de10c044
[   40.490699] de80: dd44dea4 dd44de90 bf0a97e0 c03ba660 de10c010 de10c010 dd44d
ebc dd44dea8
[   40.490720] dea0: c03c0170 bf0a976c de10c010 bf0aea88 dd44ded4 dd44dec0 c03be
2f0 c03c0154
[   40.490741] dec0: de10c010 bf0aea88 dd44def4 dd44ded8 c03beb68 c03be258 bf0ae
a88 00507d5c
[   40.490762] dee0: 00000800 00000081 dd44df0c dd44def8 c03bde00 c03beab8 bf0ae
a88 00507d5c
[   40.490783] df00: dd44df24 dd44df10 c03bf1e8 c03bddb8 bf0aeb80 00507d5c dd44d
f34 dd44df28
[   40.490804] df20: c03c0258 c03bf1c4 dd44df44 dd44df38 bf0ad080 c03c0250 dd44d
fa4 dd44df48
[   40.490826] df40: c00c2348 bf0ad078 dd44df64 635f6974 00777370 00000000 dd180
d40 c000fb90
[   40.490847] df60: 00000001 00000006 00507d28 00507d28 bea62ee5 00000081 dd44d
f94 dd44df88
[   40.490868] df80: c00896b0 000894bc 00000000 00507d28 00507d28 bea62ee5 00000
000 dd44dfa8
[   40.490889] dfa0: c000fb40 c00c21f8 00507d28 00507d28 00507d5c 00000800 0a0d6
500 0a0d6500
[   40.490910] dfc0: 00507d28 00507d28 bea62ee5 00000081 bea62ddc 00000000 bea62
be8 00000000
[   40.490931] dfe0: b6eef521 bea62b7c 004ea613 b6eef526 80010030 00507d5c 0e30e
809 80b15400
[   40.490942] Backtrace: 
[   40.490970] [<c0029548>] (omap_device_idle) from [<c0029608>] (_od_runtime_su
spend+0x24/0x28)
[   40.490982]  r7:00000000 r6:c00295e4 r5:dd1d98a0 r4:dd1d9810
[   40.491036] [<c00295e4>] (_od_runtime_suspend) from [<c03c7350>] (__rpm_callb
ack+0x34/0x68)
[   40.491048]  r5:dd1d98a0 r4:dd1d9810
[   40.491078] [<c03c731c>] (__rpm_callback) from [<c03c73ac>] (rpm_callback+0x2
8/0x88)
[   40.491089]  r7:00000000 r6:c08ca100 r5:c00295e4 r4:dd1d9810
[   40.491130] [<c03c7384>] (rpm_callback) from [<c03c7fd8>] (rpm_suspend+0x104/
0x4bc)
[   40.491141]  r7:00000000 r6:c08ca100 r5:c00295e4 r4:dd1d9810
[   40.491184] [<c03c7ed4>] (rpm_suspend) from [<c03c8568>] (rpm_idle+0x114/0x14
8)
[   40.491196]  r10:00000000 r9:dd44c000 r8:dd1d994c r7:00000000 r6:00000004 r5:
00000000
[   40.491236]  r4:dd1d9810
[   40.491259] [<c03c8454>] (rpm_idle) from [<c03c7844>] (__pm_runtime_idle+0x68
/0x8c)
[   40.491270]  r9:dd44c000 r8:c112e770 r7:600f0013 r6:dd1d98a0 r5:00000004 r4:d
d1d9810
[   40.491334] [<c03c77dc>] (__pm_runtime_idle) from [<bf1d21a8>] (davinci_mdio_
remove+0x34/0x48 [davinci_mdio])
[   40.491346]  r7:de10c010 r6:c09201f0 r5:dd1d9810 r4:dd1d9810
[   40.491399] [<bf1d2174>] (davinci_mdio_remove [davinci_mdio]) from [<c03c0170
>] (platform_drv_remove+0x28/0x48)
[   40.491411]  r5:dd1d9810 r4:dd1d9810
[   40.491441] [<c03c0148>] (platform_drv_remove) from [<c03be2f0>] (__device_re
lease_driver+0xa4/0x118)
[   40.491453]  r5:bf1d2bb0 r4:dd1d9810
[   40.491481] [<c03be24c>] (__device_release_driver) from [<c03be38c>] (device_
release_driver+0x28/0x34)
[   40.491493]  r5:dd1d9810 r4:dd1d9844
[   40.491521] [<c03be364>] (device_release_driver) from [<c03bdb70>] (bus_remov
e_device+0xec/0x11c)
[   40.491533]  r5:dd1d9810 r4:de02a84c
[   40.491573] [<c03bda84>] (bus_remove_device) from [<c03baad4>] (device_del+0x
114/0x254)
[   40.491584]  r7:de10c010 r6:dd1d9818 r5:00000000 r4:dd1d9810
[   40.491626] [<c03ba9c0>] (device_del) from [<c03bac28>] (device_unregister+0x
14/0x28)
[   40.491638]  r8:c000fce4 r7:00000081 r6:bf0a9744 r5:00000000 r4:dd1d9810
[   40.491686] [<c03bac14>] (device_unregister) from [<c04cecbc>] (of_device_unr
egister+0x14/0x18)
[   40.491698]  r5:00000000 r4:00000000
[   40.491750] [<c04ceca8>] (of_device_unregister) from [<bf0a9758>] (cpsw_remov
e_child_device+0x14/0x1c [ti_cpsw])
[   40.491782] [<bf0a9744>] (cpsw_remove_child_device [ti_cpsw]) from [<c03ba690
>] (device_for_each_child+0x3c/0x84)
[   40.491812] [<c03ba654>] (device_for_each_child) from [<bf0a97e0>] (cpsw_remo
ve+0x80/0xb8 [ti_cpsw])
[   40.491824]  r6:de10c044 r5:de10c010 r4:dd25d000
[   40.491869] [<bf0a9760>] (cpsw_remove [ti_cpsw]) from [<c03c0170>] (platform_
drv_remove+0x28/0x48)
[   40.491881]  r5:de10c010 r4:de10c010
[   40.491910] [<c03c0148>] (platform_drv_remove) from [<c03be2f0>] (__device_re
lease_driver+0xa4/0x118)
[   40.491921]  r5:bf0aea88 r4:de10c010
[   40.491949] [<c03be24c>] (__device_release_driver) from [<c03beb68>] (driver_
detach+0xbc/0xc0)
[   40.491961]  r5:bf0aea88 r4:de10c010
[   40.491988] [<c03beaac>] (driver_detach) from [<c03bde00>] (bus_remove_driver
+0x54/0xa8)
[   40.491999]  r7:00000081 r6:00000800 r5:00507d5c r4:bf0aea88
[   40.492039] [<c03bddac>] (bus_remove_driver) from [<c03bf1e8>] (driver_unregi
ster+0x30/0x50)
[   40.492051]  r5:00507d5c r4:bf0aea88
[   40.492080] [<c03bf1b8>] (driver_unregister) from [<c03c0258>] (platform_driv
er_unregister+0x14/0x18)
[   40.492091]  r5:00507d5c r4:bf0aeb80
[   40.492130] [<c03c0244>] (platform_driver_unregister) from [<bf0ad080>] (cpsw
_driver_exit+0x14/0x1c [ti_cpsw])
[   40.492166] [<bf0ad06c>] (cpsw_driver_exit [ti_cpsw]) from [<c00c2348>] (SyS_
delete_module+0x15c/0x1e4)
[   40.492193] [<c00c21ec>] (SyS_delete_module) from [<c000fb40>] (ret_fast_sysc
all+0x0/0x1c)
[   40.492205]  r6:bea62ee5 r5:00507d28 r4:00507d28
[   40.492240] Code: e24cb004 e3500000 01a06000 1590625c (e5d6300d) 
[   40.492407] ---[ end trace 7f5f8a598ccb1ba7 ]---

I have built the following as modules alongside ti_cpsw, cpsw_ale, cpsw_common, davinci_cpdma.

I'm using the TI kernel version 4.4.93 from the TI github.

Could you please advise a solution if known or if you require more information?

Thanks,

Ben