我使用的是am335x 的 Linux 4.14 内核,在移植移远4g模块EC20时出现了如下问题:
我能够在设备中发现ttyUSB0~3,并且可以使用ppp拨号成功拨号,但是在拨号成功一小段时间后系统就会发生内存泄漏之后死机,我搜索后发现是在内核driver/usb/core/urb.c文件中的usb_anchor_urb函数中的list_add_tail函数发生的问题,我不知道发生了什么,是系统的bug吗,我是安装模块安装说明书进行的配置,之前在4.1.18内核中可以正常加载4g模块,并不会发生这个问题,希望有人可以解答一下,附问题如下:
[ 99.259592] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 99.268187] pgd = db0d8000
[ 99.271068] [00000000] *pgd=00000000
[ 99.274892] Internal error: Oops: 805 [#1] PREEMPT ARM
[ 99.280356] Modules linked in:
[ 99.283632] CPU: 0 PID: 97 Comm: sd-resolve Tainted: G W 4.14.79-ge669d52447 #37
[ 99.292686] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 99.299163] task: dc59de00 task.stack: db0c8000
[ 99.304012] PC is at usb_anchor_urb+0x9c/0x128
[ 99.308767] LR is at wake_up_klogd+0x5c/0x90
[ 99.313308] pc : [<c05fb148>] lr : [<c0168eec>] psr: 200e0093
[ 99.319966] sp : db0c9858 ip : 00000007 fp : db0c987c
[ 99.325519] r10: 00000043 r9 : c0d16680 r8 : db0c8000
[ 99.331074] r7 : 200e0093 r6 : dc5d8d9c r5 : dc554404 r4 : dc5d8d80
[ 99.338011] r3 : 00000000 r2 : 00000a05 r1 : 00000000 r0 : c0b0d47c
[ 99.344953] Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
[ 99.352629] Control: 10c5387d Table: 9b0d8019 DAC: 00000051
[ 99.358735] Process sd-resolve (pid: 97, stack limit = 0xdb0c8210)
[ 99.365303] Stack: (0xdb0c9858 to 0xdb0ca000)
[ 99.369941] 9840: 00000000 db0c9868
[ 99.378644] 9860: 00000000 dc5543e0 dc5d8d80 00000043 db0c98d4 db0c9880 c0621814 c05fb0b8
[ 99.387343] 9880: db0c989c db0c9890 00000043 dc5543c0 a00e0013 01080020 dc5f4000 dc5df180
[ 99.396042] 98a0: db3e80b0 dc554400 00000040 c0621678 db1dd60e 00000040 00000001 c0924ff8
[ 99.404745] 98c0: db3e8000 00000001 db0c98ec db0c98d8 c061b654 c0621684 00000043 db1dd60e...