linux内核加载驱动的oops错误求解

发布于 2022-10-15 08:14:10 字数 1479 浏览 21 评论 0

本人使用的是ARM linux的一块开发板,之前移植过一个USB转RJ45(USB有线网卡)的驱动,并可以成功运行,但是后来因为要用到网桥,所以重新编译了内核,把<*>802.1d Ethernet Bridging 模块编进去了,但是之后在板子上的linux里,加载我的USB网卡驱动是没问题,但是配置那个网卡时就出错了,错误信息如下:root@FriendlyARM plg]# ifconfig eth1 10.0.0.1
eth1: rxqlen 0 --> 4
Unable to handle kernel NULL pointer dereference at virtual address 000000f2
pgd = c3ab4000
[000000f2] *pgd=33afd031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
last sysfs file: /sys/devices/platform/s3c2410-ohci/usb1/1-1/dev
Modules linked in: asix
CPU: 0 Not tainted (2.6.32.2-FriendlyARM #14)
PC is at eth_type_trans+0x2c/0x11c
LR is at 0xf2
pc : [<c03085a8>] lr : [<000000f2>] psr: 20000013
sp : c3af9bb8 ip : c3afe9c0 fp : c3af9bd4
r10: 00000052 r9 : c3ace2c0 r8 : c3afe300
r7 : c3ae5006 r6 : c3afe9c0 r5 : c3ace2c0 r4 : c3ace000
r3 : 000000f2 r2 : 00000000 r1 : 0000000e r0 : 00000100
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: c000717f Table: 33ab4000 DAC: 00000015
Process ifconfig (pid: 745, stack limit = 0xc3af8270)
Stack: (0xc3af9bb8 to 0xc3afa000)。。。
这里只贴了一部分错误,我的理解是在eth_type_trans这个函数中应该有指针为空的错误,然后就在驱动程序中找到了这个函数:void axusbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)
{
int status;

skb->dev = dev->net;
skb->protocol = eth_type_trans (skb, dev->net);里面的两个应该都是不是空指针啊,为什么会报错呢?难道是网桥和网卡驱动有冲突?

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

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

发布评论

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