出现问题时的反汇编为:

/usr/src/debug/kernel-4.1.44-.aarch64/net/core/dev.c: 1780
0xffff800000860724 <__netif_receive_skb_core+420>: ldr x0, [x1,x0]
0xffff800000860728 <__netif_receive_skb_core+424>: str x0, [x29,#128]
0xffff80000086072c <__netif_receive_skb_core+428>: ldr x20, [x29,#128]
0xffff800000860730 <__netif_receive_skb_core+432>: cmp x25, x20
0xffff800000860734 <__netif_receive_skb_core+436>: sub x20, x20, #0x28
0xffff800000860738 <__netif_receive_skb_core+440>: b.eq 0xffff800000860760 <__netif_receive_skb_core+480>
/usr/src/debug/kernel-4.1.44-.aarch64/net/core/dev.c: 1781
0xffff80000086073c <__netif_receive_skb_core+444>: ldrh w0, [x20]

代码为:

static inline void deliver_ptype_list_skb(struct sk_buff *skb,struct packet_type **pt,struct net_device *orig_dev,__be16 type,struct list_head *ptype_list)
{struct packet_type *ptype, *pt_prev = *pt;1780    list_for_each_entry_rcu(ptype, ptype_list, list) {
1781        if (ptype->type != type)continue;if (pt_prev)deliver_skb(skb, pt_prev, orig_dev);pt_prev = ptype;}*pt = pt_prev;
}

list_for_each_entry_rcu函数为:
#define list_for_each_entry_rcu(pos, head, member) \for (pos = list_entry_rcu((head)->next, typeof(*pos), member); \&pos->member != (head); \pos = list_entry_rcu(pos->member.next, typeof(*pos), member))

list_entry_rcu为:

#define list_entry_rcu(ptr, type, member) \
({ \typeof(*ptr) __rcu *__ptr = (typeof(*ptr) __rcu __force *)ptr; \container_of((typeof(ptr))rcu_dereference_raw(__ptr), type, member); \
})

container_of

#define container_of(ptr, type, member) ({            \const typeof( ((type *)0)->member ) *__mptr = (ptr);    \(type *)( (char *)__mptr - offsetof(type,member) );})

 

转载于:https://www.cnblogs.com/xingmuxin/p/9456775.html

定义一个内核panic问题相关推荐

  1. 【转】如何编译一个内核 - Ubuntu方式

    如何编译一个内核 - Ubuntu方式 2011-09-19 15:40 转载地址:http://hi.baidu.com/1101050240/blog/item/69e3d0d92f2b297dd ...

  2. Android 在 SElinux下 如何获得对一个内核节点的访问权限

    点击打开链接 Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问. 本文将以用户自定义的 ...

  3. Android 5.0 SEAndroid下如何获得对一个内核节点的访问权限

    Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问. 本文将以用户自定义的内核节点/de ...

  4. golang 定义一个空切片_Golang简单入门教程——函数进阶使用

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第八篇,我们来聊聊golang当中的函数. 我们在之前的时候已经介绍过了函数的基本用法,知道了怎么样设计或者是定义一 ...

  5. php定义一个名为Vehicles,php的扩展和嵌入--c++类的扩展开发

    配置文件:config.m4 1 PHP_ARG_ENABLE(vehicles, 2 [Whether to enable the "vehicles" extension], ...

  6. Linux文件系统:编写一个内核文件系统

    Linux文件系统在著名的VFS模型下工作,因此符合POSIX.编写Linux文件系统有两种方法 保险丝文件系统 内核文件系统 保险丝本身是一个内核文件系统.它将从VFS接收到的文件系统调用转发到用户 ...

  7. 空指针引用,导致linux内核panic(重启)

    这个bug搞了我整整两天,看了好多贴,调试了好多遍,终于解决了:复盘记录下. 先贴上重启打印日志. 1.重启打印日志 PC is at 0x0 LR is at devinet_ioctl+0x31c ...

  8. ARM Linux 内核 panic 之cache 一致性 ——cci-400 cache一致互联

    ARM Linux 内核 panic 之cache 一致性 --cci-400 cache一致互联 CCI-400 集合了互联和一致性功能,有 2 个 ACE slave 接口和 3 个 ACE-Li ...

  9. linux内核panic

    1. Linux Kernel Panic的产生的原因 panic是英文中是惊慌的意思,Linux Kernel panic正如其名,linux kernel不知道如何走了,它会尽可能把它此时能获取的 ...

  10. 一个内核oops问题的分析及解决

    个人简介 lccz(龙城赤子),资深嵌入式开发者,爱好Linux内核相关技术.个人CSDN博客:wwwyue1985. 最近在调试设备时,遇到了一个偶发的开机死机问题.通过查看输出日志,发现内核报告了 ...

最新文章

  1. AngularJS开发指南7:AngularJS本地化,国际化,以及兼容IE低版本浏览器
  2. mysql orm .net,2020年 .NET ORM 完整比较、助力选择
  3. optee中core_init_mmu_regs函数解读
  4. Acwing第 14 场周赛【完结】
  5. Lua直接调用动态链接库(DLL或so文件)
  6. Spring MVC生成PDF文件代码示例
  7. 一段Big5繁体转换简体GB2312的程序
  8. 在 SAP Spartacus 里如何调用 hybris 里实现的自定义 API
  9. [极客大挑战 2019]BuyFlag
  10. linux ojvm补丁安装,打补丁PSU
  11. 如何组合来自多个SQL表的结果(提示:有三种方式)
  12. 威胁情报工具:更快?更聪明?
  13. 几种 vue的数据交互形式
  14. postman安装与使用
  15. excel粘贴时出现故障_Excel常见问题及解决办法汇总
  16. python聊天机器人_用 Python 实现聊天机器人
  17. 自定义UpsertStreamTableSink
  18. python tkinter 桌面小程序开发从入门到界面美化(主题应用推荐)
  19. C#高效编程--改进C#代码的50个行之有效的办法笔记
  20. 日常工作中遇到的那些坑

热门文章

  1. Linux 进程间通信 无名管道(pipe)
  2. 一次搞定this和闭包
  3. jqgrid 行选中multiboxonly属性说明
  4. CentOS7源码安装Python3
  5. ubuntu 14.04 32bit依赖库解决
  6. eclipse如何安装java decompiler反编译插件
  7. Mac如何解决vi vim光标移动慢问题
  8. java获取电脑配置_Java.Utils:获取电脑配置信息
  9. Eclipse使用Git上传新项目到GitHub
  10. mysql数据库中的分组查询语句_详解MySQL中的分组查询与连接查询语句