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.

AM335X 卸载触摸屏驱动时内核空指针错误



您好,
我们使用的内核版本是linux-3.1.0-psp04.06.00.03.sdk。menuconfig中 Device Drivers  ---> Input device support  ---> Touchscreens  ---> <M>   TI Touchscreen Interface。在linux启动后,手动 insmod ti_tscadc.ko 后,触摸屏正常使用。但是,手动卸载 rmmod ti_tscadc.ko 时,内核报错 Unable to handle kernel NULL pointer dereference at virtual address 00000014。测试其他input设备(gpio_keys)可以正常加载,卸载。

此错误dmesg信息如下:
[  102.490289] Unable to handle kernel NULL pointer dereference at virtual address 00000014
[  102.498916] pgd = dece4000
[  102.501763] [00000014] *pgd=9fb42831, *pte=00000000, *ppte=00000000
[  102.508393] Internal error: Oops: 17 [#1]
[  102.512612] Modules linked in: ti_tscadc(-) [last unloaded: udc_core]
[  102.519420] CPU: 0    Not tainted  (3.1.0 #189)
[  102.524204] PC is at tscadc_remove+0x20/0x84 [ti_tscadc]
[  102.529799] LR is at tscadc_remove+0x18/0x84 [ti_tscadc]
[  102.535398] pc : [<bf029310>]    lr : [<bf029308>]    psr: a0000013
[  102.535409] sp : dfa4de80  ip : dfa4de80  fp : dfa4de94
[  102.547489] r10: 00000000  r9 : dfa4c000  r8 : c00138e8
[  102.552985] r7 : 00000013  r6 : bf029a74  r5 : c0494218  r4 : 00000000
[  102.559853] r3 : bf0292f0  r2 : 00000000  r1 : 00000000  r0 : 00000000
[  102.566724] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  102.574235] Control: 10c5387d  Table: 9ece4019  DAC: 00000015
[  102.580280] Process rmmod (pid: 926, stack limit = 0xdfa4c2f0)
[  102.586416] Stack: (0xdfa4de80 to 0xdfa4e000)
。。。
[  102.694407] Backtrace:
[  102.697013] [<bf0292f0>] (tscadc_remove+0x0/0x84 [ti_tscadc]) from [<c01e7930>] (platform_drv_remove+0x20/0x24)
[  102.707633]  r5:bf029a74 r4:c0494220
[  102.711414] [<c01e7910>] (platform_drv_remove+0x0/0x24) from [<c01e6150>] (__device_release_driver+0x78/0xc8)
[  102.721866] [<c01e60d8>] (__device_release_driver+0x0/0xc8) from [<c01e67ec>] (driver_detach+0xa4/0xa8)
[  102.731754]  r5:c0494254 r4:c0494220
[  102.735549] [<c01e6748>] (driver_detach+0x0/0xa8) from [<c01e5fe8>] (bus_remove_driver+0x84/0xc8)
[  102.744889]  r6:c04abc50 r5:bf029a74 r4:00000000 r3:df8b0140
[  102.750873] [<c01e5f64>] (bus_remove_driver+0x0/0xc8) from [<c01e6bc4>] (driver_unregister+0x58/0x78)
[  102.760587]  r6:dfa4c000 r5:bf029a74 r4:00000000 r3:bf0298cc
[  102.766574] [<c01e6b6c>] (driver_unregister+0x0/0x78) from [<c01e7d70>] (platform_driver_unregister+0x14/0x18)
[  102.777100]  r5:bf029ab0 r4:00000000
[  102.780885] [<c01e7d5c>] (platform_driver_unregister+0x0/0x18) from [<bf0298e0>] (ti_tsc_exit+0x14/0x1c [ti_tscadc])
[  102.791997] [<bf0298cc>] (ti_tsc_exit+0x0/0x1c [ti_tscadc]) from [<c00640e4>] (sys_delete_module+0x1f4/0x26c)
[  102.802473] [<c0063ef0>] (sys_delete_module+0x0/0x26c) from [<c0013740>] (ret_fast_syscall+0x0/0x30)
[  102.812086]  r7:00000081 r6:00021cf8 r5:00000800 r4:00021cf8
[  102.818074] Code: e2800008 eb46f348 e1a04000 e1a01000 (e5900014)
[  102.824653] ---[ end trace 50cdcc221511b7d9 ]---
Segmentation fault