您好,
我们使用的内核版本是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