以太网驱动的问题:veth_start_xmit 拷贝sk_buff出错

fjlangzi 2011-06-02 09:34:35
以太网的发送接口。

static int
veth_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
unsigned char buff[VETH_RX_BUFFSIZE];

memset(buff, 0, VETH_RX_BUFFSIZE);
memcpy(buff, skb->data, skb->len);//这里导致内核崩溃,Why。。。????
printk(KERN_ALERT "%s: %s \r\n", dev->name, __FUNCTION__);

dev_kfree_skb(skb);

return 0; /* Our simple device can not fail */
}


经过多次测试,发现好像是struct sk_buff *skb指针无效,可是这是内核传过来的指针,又怎么能出错呢?不解??
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjmboss 2012-12-06
  • 打赏
  • 举报
回复
这是神马问题,咋没人回答
fjlangzi 2011-06-03
  • 打赏
  • 举报
回复
抱歉csdn不让编辑,刚才太激动说错了

这段代码在linux2.6.20.21中出现的这个问题
fjlangzi 2011-06-03
  • 打赏
  • 举报
回复
发现问题所在了
先避开内存泄漏不谈,这段代码在linux2.6.20.21中是可以运行的,没有问题
可是在linux.2.6.20中却有问题。。

这是为啥啊,我要写这个驱动 该如何补救呢?

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧