免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1417 | 回复: 0
打印 上一主题 下一主题

读内存,导致板子重启,为何?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-26 23:58 |只看该作者 |倒序浏览
本帖最后由 yu_single 于 2010-05-27 09:07 编辑

函数如下,是一内核模块中用来解析网络报文的,但在执行红字部分的时候就会直接导致ARM板子重启,我一开始是以为memcpy出问题了,后来用eh->h_dest[0]这样最简单的一句访问内存的句子也是同样问题,于是打印了skb->data的地址,是以下这些值:246,294,1828。地址为什么这么小,是不是有问题?还望高手指点迷津啊,谢谢了!
int parse_pkt(struct sk_buff *skb, u_int16_t skb_displ, struct pfring_pkthdr *hdr)
{
  struct ethhdr *eh = (struct ethhdr *)(skb->data - skb_displ);
  u_int16_t displ, ip_len;

  memset(&hdr->parsed_pkt, 0, sizeof(struct pkt_parsing_info));
  hdr->parsed_header_len = 9;

  /* MAC adderess */
  memcpy(&hdr->parsed_pkt.dmac, eh->h_dest, sizeof(eh->h_dest)); ...
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP