Linux内核驱动

发布于 2022-09-11 23:53:43 字数 12635 浏览 26 评论 0

平台操作系统:Linux 2.6.33 双网卡eth0及eth1,其中eth1是通过USB转以太网。
现象:
1、通过eth0访问设备或者传输文件,OK。
2、通过eth1访问时,ping OK。telnet 能登录成功。 ftp也能登录成功。但是通过ftp传输比较大的文件时,无法传输,此时拔掉设备端的网线,内核崩了。

哪位大哥帮我分析一下,错误日志我贴在下面了
`skb_over_panic: text:c01bd980 len:2048 put:2048 head:c7d26800 data:c7d26802 tail:0xc7d27002 end:0xc7d26e00 dev:<NULL>
kernel BUG at net/core/skbuff.c:127!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c7f28000
[00000000] pgd=c7f1f031, pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] PREEMPT
last sysfs file: /sys/devices/virtual/i2c-eeprom/i2c-eeprom/dev
Modules linked in: driver_gwzd exwdg suart_emu
CPU: 0 Not tainted (2.6.33-rc4 #318)
PC is at __bug+0x20/0x2c
LR is at release_console_sem+0x1f8/0x210
pc : [<c002badc>] lr : [<c003c12c>] psr: 60000093
sp : c7ee5b80 ip : c7ee5ac0 fp : c7ee5b8c
r10: 00000000 r9 : c784d8cc r8 : c7cd2840
r7 : c7d26e00 r6 : c7d27002 r5 : c7d26802 r4 : c7d26800
r3 : 00000000 r2 : 00000001 r1 : 00003578 r0 : 0000002b
Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005317f Table: c7f28000 DAC: 00000015
Process ifconfig (pid: 725, stack limit = 0xc7ee4270)
Stack: (0xc7ee5b80 to 0xc7ee6000)
5b80: c7ee5bc4 c7ee5b90 c01fd300 c002bacc c7d26800 c7d26802 c7d27002 c7d26e00
5ba0: c03638f3 000200da c7cd2840 00000800 c7d26802 c01bd980 c7ee5be4 c7ee5bc8
5bc0: c01feed0 c01fd2b4 ffffff98 c79526c0 c7e1e100 c7cd2864 c7ee5c0c c7ee5be8
5be0: c01bd980 c01fee84 c7e1e100 ffffff98 c7e1e100 00000080 c7e1e100 c784d8cc
5c00: c7ee5c24 c7ee5c10 c01c4bf8 c01bd964 c784d800 c7a82ec0 c7ee5c74 c7ee5c28
5c20: c01e0ba0 c01c4b8c c7ee5d84 c039f858 c7ee5c44 c7ee5e0e 451a451a c015289c
5c40: c7ee5c9c 00000000 00000000 00000200 c7a82ec0 c7e1e100 00000080 c784d990
5c60: c784d990 00000001 c7ee5cb4 c7ee5c78 c01e0cb0 c01e0a98 00000000 00000000
5c80: 00000000 c784d8cc 00000000 c784d990 c786655c 00000000 fee00520 c7e1e100
5ca0: 00000000 00000080 c7ee5cec c7ee5cb8 c01e0f14 c01e0be8 00000000 00000000
5cc0: 00000009 00000000 c7a82ec0 c7e1e100 00000001 00000080 80000093 c784d800
5ce0: c7ee5d2c c7ee5cf0 c01e1700 c01e0e10 00000000 00000000 00000000 00000000
5d00: c787c470 c784d800 c7e1e100 c7e1e100 ffffff98 ffffff98 00000000 c7952400
5d20: c7ee5d54 c7ee5d30 c01c4d6c c01e15b0 00000000 a0000093 c7e1e100 ffffff98
5d40: c7ee4000 00000000 c7ee5d74 c7ee5d58 c01c4f9c c01c4c54 c7cd2900 60000013
5d60: 00000000 c7952758 c7ee5d84 c7ee5d78 c01c6264 c01c4f10 c7ee5da4 c7ee5d88
5d80: c01bc5ac c01c6234 c7952758 c7f12900 c7952764 c79526c0 c7ee5dec c7ee5da8
5da0: c01bc688 c01bc570 00000000 00000000 c7f12900 c0038a44 c7ee5dc0 c7ee5dc0
5dc0: c7ee5db8 c7ee5db8 c7ee5dec c7952400 c79526c0 c02d96f0 00001003 c792220c
5de0: c7ee5e14 c7ee5df0 c01bd410 c01bc60c c7952400 c02d9bd8 00001002 c7952400
5e00: c02d9bd8 00001002 c7ee5e2c c7ee5e18 c0209918 c01bd350 c7952400 00000001
5e20: c7ee5e4c c7ee5e30 c02092a4 c02098a4 c78e1a00 00000000 c7922200 c7ee5e68
5e40: c7ee5eb4 c7ee5e50 c025be30 c020921c bedd3a20 00008914 30687465 00000000
5e60: 00000000 00000000 001b1002 bedd3dbd bedd3acc 00176874 001b1002 bedd3dbd
5e80: bedd3acc 00176874 001b1003 bedd3a20 00008914 bedd3a20 c7edb900 bedd3a20
5ea0: c7ee4000 00000000 c7ee5ecc c7ee5eb8 c025d658 c025bb50 c7edb900 00008914
5ec0: c7ee5eec c7ee5ed0 c01f71c4 c025d598 c7edb900 00008914 bedd3a20 c7edb900
5ee0: c7ee5f0c c7ee5ef0 c00a9138 c01f6fe4 00000018 c7edb900 00000018 c7edb900
5f00: c7ee5f7c c7ee5f10 c00a984c c00a9114 c0395234 00000024 00000001 00000009
5f20: 0000000a c03b6900 c7ee5f4c c7ee5f38 c006ae00 c006a9d8 c7f12900 c7f12900
5f40: 00000000 c7ee4000 00000000 c7f12a84 c7ee5f74 00000018 bedd3a20 00008914
5f60: c7edb900 c00280e8 c7ee4000 00000000 c7ee5fa4 c7ee5f80 c00a98e8 c00a92c8
5f80: c00413b4 00000000 001cbbc1 00000001 000eba60 00000036 00000000 c7ee5fa8
5fa0: c0027f40 c00a98b8 001cbbc1 00000001 00000018 00008914 bedd3a20 001cbbc1
5fc0: 001cbbc1 00000001 000eba60 00000036 bedd3c5c 00000003 00000000 001a4814
5fe0: 00000000 bedd3a00 0000b64c 000090cc 60000010 00000018 00000000 00000000
Backtrace:
[<c002babc>] (__bug+0x0/0x2c) from [<c01fd300>] (skb_over_panic+0x5c/0x68)
[<c01fd2a4>] (skb_over_panic+0x0/0x68) from [<c01feed0>] (skb_put+0x5c/0x6c)
r7:c01bd980 r6:c7d26802 r5:00000800 r4:c7cd2840
[<c01fee74>] (skb_put+0x0/0x6c) from [<c01bd980>] (rx_complete+0x2c/0x1b0)
r7:c7cd2864 r6:c7e1e100 r5:c79526c0 r4:ffffff98
[<c01bd954>] (rx_complete+0x0/0x1b0) from [<c01c4bf8>] (usb_hcd_giveback_urb+0x7c/0xc8)
r9:c784d8cc r8:c7e1e100 r7:00000080 r6:c7e1e100 r5:ffffff98
r4:c7e1e100
[<c01c4b7c>] (usb_hcd_giveback_urb+0x0/0xc8) from [<c01e0ba0>] (musb_giveback+0x118/0x150)
r5:c7a82ec0 r4:c784d800
[<c01e0a88>] (musb_giveback+0x0/0x150) from [<c01e0cb0>] (musb_advance_schedule+0xd8/0x228)
[<c01e0bd8>] (musb_advance_schedule+0x0/0x228) from [<c01e0f14>] (musb_cleanup_urb+0x114/0x134)
[<c01e0e00>] (musb_cleanup_urb+0x0/0x134) from [<c01e1700>] (musb_urb_dequeue+0x160/0x1bc)
[<c01e15a0>] (musb_urb_dequeue+0x0/0x1bc) from [<c01c4d6c>] (unlink1+0x128/0x134)
[<c01c4c44>] (unlink1+0x0/0x134) from [<c01c4f9c>] (usb_hcd_unlink_urb+0x9c/0xb8)
r9:00000000 r8:c7ee4000 r7:ffffff98 r6:c7e1e100 r5:a0000093
r4:00000000
[<c01c4f00>] (usb_hcd_unlink_urb+0x0/0xb8) from [<c01c6264>] (usb_unlink_urb+0x40/0x44)
r7:c7952758 r6:00000000 r5:60000013 r4:c7cd2900
[<c01c6224>] (usb_unlink_urb+0x0/0x44) from [<c01bc5ac>] (unlink_urbs+0x4c/0x9c)
[<c01bc560>] (unlink_urbs+0x0/0x9c) from [<c01bc688>] (usbnet_terminate_urbs+0x8c/0x100)
r7:c79526c0 r6:c7952764 r5:c7f12900 r4:c7952758
[<c01bc5fc>] (usbnet_terminate_urbs+0x0/0x100) from [<c01bd410>] (usbnet_stop+0xd0/0x124)
r8:c792220c r7:00001003 r6:c02d96f0 r5:c79526c0 r4:c7952400
[<c01bd340>] (usbnet_stop+0x0/0x124) from [<c0209918>] (dev_close+0x84/0xb0)
r6:00001002 r5:c02d9bd8 r4:c7952400
[<c0209894>] (dev_close+0x0/0xb0) from [<c02092a4>] (dev_change_flags+0x98/0x170)
r5:00000001 r4:c7952400
[<c020920c>] (dev_change_flags+0x0/0x170) from [<c025be30>] (devinet_ioctl+0x2f0/0x6a8)
r7:c7ee5e68 r6:c7922200 r5:00000000 r4:c78e1a00
[<c025bb40>] (devinet_ioctl+0x0/0x6a8) from [<c025d658>] (inet_ioctl+0xd0/0x108)
[<c025d588>] (inet_ioctl+0x0/0x108) from [<c01f71c4>] (sock_ioctl+0x1f0/0x248)
r5:00008914 r4:c7edb900
[<c01f6fd4>] (sock_ioctl+0x0/0x248) from [<c00a9138>] (vfs_ioctl+0x34/0xb4)
r7:c7edb900 r6:bedd3a20 r5:00008914 r4:c7edb900
[<c00a9104>] (vfs_ioctl+0x0/0xb4) from [<c00a984c>] (do_vfs_ioctl+0x594/0x5f0)
r7:c7edb900 r6:00000018 r5:c7edb900 r4:00000018
[<c00a92b8>] (do_vfs_ioctl+0x0/0x5f0) from [<c00a98e8>] (sys_ioctl+0x40/0x64)
[<c00a98a8>] (sys_ioctl+0x0/0x64) from [<c0027f40>] (ret_fast_syscall+0x0/0x28)
r7:00000036 r6:000eba60 r5:00000001 r4:001cbbc1
Code: e1a01000 e59f000c eb0a4860 e3a03000 (e5833000)
---[ end trace 014c4e53d03054b3 ]---
note: ifconfig[725] exited with preempt_count 1
BUG: scheduling while atomic: ifconfig/725/0x40000002
Modules linked in: driver_gwzd exwdg suart_emu
Backtrace:
[<c002bdf8>] (dump_backtrace+0x0/0x114) from [<c02bdb1c>] (dump_stack+0x18/0x1c)
r7:c7ee4000 r6:c7f1c268 r5:c7f12900 r4:00000000
[<c02bdb04>] (dump_stack+0x0/0x1c) from [<c0035da8>] (__schedule_bug+0x54/0x60)
[<c0035d54>] (__schedule_bug+0x0/0x60) from [<c02bde2c>] (schedule+0x7c/0x360)
r5:c7f12900 r4:c7ee4000
[<c02bddb0>] (schedule+0x0/0x360) from [<c0035f98>] (__cond_resched+0x28/0x38)
[<c0035f70>] (__cond_resched+0x0/0x38) from [<c02be22c>] (_cond_resched+0x34/0x44)
r5:000f0000 r4:c03cfc80
[<c02be1f8>] (_cond_resched+0x0/0x44) from [<c0083f58>] (unmap_vmas+0x5b8/0x66c)
[<c00839a0>] (unmap_vmas+0x0/0x66c) from [<c0086d64>] (exit_mmap+0xc4/0x1f8)
[<c0086ca0>] (exit_mmap+0x0/0x1f8) from [<c00393d0>] (mmput+0x40/0x118)
r7:c7a1bab4 r6:c7f12900 r5:00000000 r4:c7a1ba80
[<c0039390>] (mmput+0x0/0x118) from [<c003d70c>] (exit_mm+0x130/0x13c)
r5:c7a1ba80 r4:c7ee4000
[<c003d5dc>] (exit_mm+0x0/0x13c) from [<c003f174>] (do_exit+0x1a0/0x6b4)
r7:c002bae0 r6:c7f12900 r5:00000001 r4:0000000b
[<c003efd4>] (do_exit+0x0/0x6b4) from [<c002c1a4>] (die+0x298/0x2cc)
[<c002bf0c>] (die+0x0/0x2cc) from [<c002e308>] (__do_kernel_fault+0x6c/0x7c)
[<c002e29c>] (__do_kernel_fault+0x0/0x7c) from [<c002e4e8>] (do_page_fault+0x1d0/0x1e8)
r7:c7a1ba80 r6:00000000 r5:c7f12900 r4:c038a5a8
[<c002e318>] (do_page_fault+0x0/0x1e8) from [<c00272e0>] (do_DataAbort+0x3c/0x9c)
[<c00272a4>] (do_DataAbort+0x0/0x9c) from [<c0027aec>] (__dabt_svc+0x4c/0x60)
Exception stack(0xc7ee5b38 to 0xc7ee5b80)
5b20: 0000002b 00003578
5b40: 00000001 00000000 c7d26800 c7d26802 c7d27002 c7d26e00 c7cd2840 c784d8cc
5b60: 00000000 c7ee5b8c c7ee5ac0 c7ee5b80 c003c12c c002badc 60000093 ffffffff
r8:c7cd2840 r7:c7d26e00 r6:c7d27002 r5:c7ee5b6c r4:ffffffff
[<c002babc>] (__bug+0x0/0x2c) from [<c01fd300>] (skb_over_panic+0x5c/0x68)
[<c01fd2a4>] (skb_over_panic+0x0/0x68) from [<c01feed0>] (skb_put+0x5c/0x6c)
r7:c01bd980 r6:c7d26802 r5:00000800 r4:c7cd2840
[<c01fee74>] (skb_put+0x0/0x6c) from [<c01bd980>] (rx_complete+0x2c/0x1b0)
r7:c7cd2864 r6:c7e1e100 r5:c79526c0 r4:ffffff98
[<c01bd954>] (rx_complete+0x0/0x1b0) from [<c01c4bf8>] (usb_hcd_giveback_urb+0x7c/0xc8)
r9:c784d8cc r8:c7e1e100 r7:00000080 r6:c7e1e100 r5:ffffff98
r4:c7e1e100
[<c01c4b7c>] (usb_hcd_giveback_urb+0x0/0xc8) from [<c01e0ba0>] (musb_giveback+0x118/0x150)
r5:c7a82ec0 r4:c784d800
[<c01e0a88>] (musb_giveback+0x0/0x150) from [<c01e0cb0>] (musb_advance_schedule+0xd8/0x228)
[<c01e0bd8>] (musb_advance_schedule+0x0/0x228) from [<c01e0f14>] (musb_cleanup_urb+0x114/0x134)
[<c01e0e00>] (musb_cleanup_urb+0x0/0x134) from [<c01e1700>] (musb_urb_dequeue+0x160/0x1bc)
[<c01e15a0>] (musb_urb_dequeue+0x0/0x1bc) from [<c01c4d6c>] (unlink1+0x128/0x134)
[<c01c4c44>] (unlink1+0x0/0x134) from [<c01c4f9c>] (usb_hcd_unlink_urb+0x9c/0xb8)
r9:00000000 r8:c7ee4000 r7:ffffff98 r6:c7e1e100 r5:a0000093
r4:00000000
[<c01c4f00>] (usb_hcd_unlink_urb+0x0/0xb8) from [<c01c6264>] (usb_unlink_urb+0x40/0x44)
r7:c7952758 r6:00000000 r5:60000013 r4:c7cd2900
[<c01c6224>] (usb_unlink_urb+0x0/0x44) from [<c01bc5ac>] (unlink_urbs+0x4c/0x9c)
[<c01bc560>] (unlink_urbs+0x0/0x9c) from [<c01bc688>] (usbnet_terminate_urbs+0x8c/0x100)
r7:c79526c0 r6:c7952764 r5:c7f12900 r4:c7952758
[<c01bc5fc>] (usbnet_terminate_urbs+0x0/0x100) from [<c01bd410>] (usbnet_stop+0xd0/0x124)
r8:c792220c r7:00001003 r6:c02d96f0 r5:c79526c0 r4:c7952400
[<c01bd340>] (usbnet_stop+0x0/0x124) from [<c0209918>] (dev_close+0x84/0xb0)
r6:00001002 r5:c02d9bd8 r4:c7952400
[<c0209894>] (dev_close+0x0/0xb0) from [<c02092a4>] (dev_change_flags+0x98/0x170)
r5:00000001 r4:c7952400
[<c020920c>] (dev_change_flags+0x0/0x170) from [<c025be30>] (devinet_ioctl+0x2f0/0x6a8)
r7:c7ee5e68 r6:c7922200 r5:00000000 r4:c78e1a00
[<c025bb40>] (devinet_ioctl+0x0/0x6a8) from [<c025d658>] (inet_ioctl+0xd0/0x108)
[<c025d588>] (inet_ioctl+0x0/0x108) from [<c01f71c4>] (sock_ioctl+0x1f0/0x248)
r5:00008914 r4:c7edb900
[<c01f6fd4>] (sock_ioctl+0x0/0x248) from [<c00a9138>] (vfs_ioctl+0x34/0xb4)
r7:c7edb900 r6:bedd3a20 r5:00008914 r4:c7edb900
[<c00a9104>] (vfs_ioctl+0x0/0xb4) from [<c00a984c>] (do_vfs_ioctl+0x594/0x5f0)
r7:c7edb900 r6:00000018 r5:c7edb900 r4:00000018
[<c00a92b8>] (do_vfs_ioctl+0x0/0x5f0) from [<c00a98e8>] (sys_ioctl+0x40/0x64)
[<c00a98a8>] (sys_ioctl+0x0/0x64) from [<c0027f40>] (ret_fast_syscall+0x0/0x28)
r7:00000036 r6:000eba60 r5:00000001 r4:001cbbc1
Segmentation fault
`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文