1:从sd卡出错log里可以看出来pc指针以及出错位置
PC is at dw_mci_pre_dma_transfer.isra.19+0x7c/0x158
pc : [<8032e130>] lr : [<8032e14c>] psr: 000f0013
但是不知道在dw_mci_pre_dma_transfer内部的具体位置
2:arm-none-linux-gnueabi-addr2line -e vmlinux 8032e130
会指出:
dm_mmc.c:479
479行处源码:
for_each_sg(data->sg, sg, data->sg_len, i) {
if (sg->offset & 3 || sg->length & 3)
return -EINVAL;
}
分析知道,sg有可能为NULL,所以kernel会出现
Unable to handle kernel NULL pointer dereference at virtual address 00000004
修改代码如下:
for_each_sg(data->sg, sg, data->sg_len, i) {
if (sg && (sg->offset & 3 || sg->length & 3))
return -EINVAL;
}
3:测试后发现还有问题,继续使用此方法查找,发现api
struct scatterlist sg_next(struct scatterlist sg)
{
...
if (sg_is_last(sg))
return NULL;
...
}
没有判断sg是否为NULL,因此修改如下:
struct scatterlist sg_next(struct scatterlist sg)
{
...
if (!sg || sg_is_last(sg))
return NULL;
...
}
再次测试没有出现
Unable to handle kernel NULL pointer dereference at virtual address 00000004

Unable to handle kernel NULL pointer dereference at virtual address相关推荐

  1. Unable to handle kernel NULL pointer dereference at virtual address 0000000d[ 435.859000] pgd = c9

    由于本人刚学驱动新手,不会太多反向操作.看了很多博主也没有解决. 经过我一个下午尝试,把代码缩减缩减在缩减之后,我发现了 先看下面的代码,有问题的代码(扫一眼就行了,估计没人看的出来) #includ ...

  2. Unable to handle kernel NULL pointer dereference at virtual address 分析

    Unable to handle kernel NULL pointer dereference at virtual address 分析 现象 [ 136.847780] br-lan: rece ...

  3. Unable to handle kernel NULL pointer dereference at virtual address 00000000问题的解决

    Unable to handle kernel NULL pointer dereference at virtual address 00000000问题的解决 参考文章: (1)Unable to ...

  4. Nvidia AGX Xavier 升级到 JetPack 4.6版本 反复打开camera导致内核出错 Unable to handle kernel NULL pointer

    这里写自定义目录标题 现象 日志显示 分析过程 解决思路 代码修改 现象 在原来 JetPack4.4 运行稳定的camera驱动,由于算法功能需要,升级到最新的JetPack4.6. 刚开始自测,功 ...

  5. Unable to handle kernel paging request at virtual address 的解决办法

    原文地址为: Unable to handle kernel paging request at virtual address 的解决办法 今天想正式开始编写各底层硬件的驱动程序,首先是双口RAM的 ...

  6. 新手玩转Linux Kernel漏洞之Null Pointer Dereference

    新手玩转Linux Kernel漏洞之Null Pointer Dereference 前言 这是我内核漏洞的入门篇, 不是很复杂, 希望能给徘徊在门外的小伙伴一点启发. 漏洞描述 A NULL po ...

  7. 【RK3399 Android系统】,启动时出现”Unable to handle kernel paging request at virtual address 490000004c“的解决思路

    从Firefly官网下载的安卓系统源码,编译后,修改了部分驱动,启动的时候偶尔会出现"Unable to handle kernel paging request at virtual ad ...

  8. ncnn报null pointer dereference异常

    错误描述 基于c++使用ncnn封装了深度学习模型,并将c++项目打包成为了一个so库给Android调用,在打包成为so库之前,在Windows系统以及Ubuntu系统利用电脑的camera测试过都 ...

  9. Android UVCCamera问题——Cause: null pointer dereference

    记录遇到的问题. 采用的开源库链接:https://github.com/saki4510t/UVCCamera 使用该库预览的时候,如果拔掉uvc设备,会造成异常闪退. signal 11 (SIG ...

最新文章

  1. 根据类名与字段名称取值(可用于循环取实体所有值非常好用)
  2. iOS中正则表达式的使用
  3. ACM基础题 - 去除字符序列中的几个字符
  4. 详解PCB抄板过程,太牛了!
  5. Java技巧: 根据网址查询DNS/IP地址
  6. oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及临时解决方案...
  7. JEECG_3.7 权限开发视频正式发布
  8. jQuery ligerUI中通过ligerDateEditor设置默认日期
  9. java模拟银行_java模拟银行交易系统程序
  10. 个人认为,载人登陆火星技术上无法实现
  11. 贪心字典序最小问题poj3617
  12. 数据结构算法常见面试考题
  13. python做积分_python曲线积分
  14. 激光打印机与计算机相连,Hp laserjet1010打印机怎么连接电脑使用?
  15. 用户管理后台管理项目总结
  16. Python 三人斗地主手牌生成
  17. 《缠中说禅108课》66:主力资金的食物链
  18. UNITY中FMOD音效插件使用
  19. 面试摘要【持续更新】
  20. Java基础篇(集合)

热门文章

  1. 教你轻松玩转-ChatGPT或生成类大模型--助你成为未来高端黄金职业人
  2. C语言 strcpy_s 函数 - C语言零基础入门教程
  3. 【宋代文学】之《过零丁洋》
  4. 使用动画绘制飘动的云朵
  5. Spreading the Wealth UVA - 11300
  6. 关于图片数字读取的识别
  7. ansible模块--groups模块
  8. 新闻集团正式对《泰晤士报》网络版收费
  9. KMP算法讲解(next数组求解)
  10. windows无法配置此无线连接-笔记本使用故障系列