Chinaunix

标题: 读内存,导致板子重启,为何?? [打印本页]

作者: yu_single    时间: 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)); ...
}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2