Unable to handle kernel NULL pointer dereference at virtual address
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相关推荐
- Unable to handle kernel NULL pointer dereference at virtual address 0000000d[ 435.859000] pgd = c9
由于本人刚学驱动新手,不会太多反向操作.看了很多博主也没有解决. 经过我一个下午尝试,把代码缩减缩减在缩减之后,我发现了 先看下面的代码,有问题的代码(扫一眼就行了,估计没人看的出来) #includ ...
- 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 ...
- 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 ...
- Nvidia AGX Xavier 升级到 JetPack 4.6版本 反复打开camera导致内核出错 Unable to handle kernel NULL pointer
这里写自定义目录标题 现象 日志显示 分析过程 解决思路 代码修改 现象 在原来 JetPack4.4 运行稳定的camera驱动,由于算法功能需要,升级到最新的JetPack4.6. 刚开始自测,功 ...
- Unable to handle kernel paging request at virtual address 的解决办法
原文地址为: Unable to handle kernel paging request at virtual address 的解决办法 今天想正式开始编写各底层硬件的驱动程序,首先是双口RAM的 ...
- 新手玩转Linux Kernel漏洞之Null Pointer Dereference
新手玩转Linux Kernel漏洞之Null Pointer Dereference 前言 这是我内核漏洞的入门篇, 不是很复杂, 希望能给徘徊在门外的小伙伴一点启发. 漏洞描述 A NULL po ...
- 【RK3399 Android系统】,启动时出现”Unable to handle kernel paging request at virtual address 490000004c“的解决思路
从Firefly官网下载的安卓系统源码,编译后,修改了部分驱动,启动的时候偶尔会出现"Unable to handle kernel paging request at virtual ad ...
- ncnn报null pointer dereference异常
错误描述 基于c++使用ncnn封装了深度学习模型,并将c++项目打包成为了一个so库给Android调用,在打包成为so库之前,在Windows系统以及Ubuntu系统利用电脑的camera测试过都 ...
- Android UVCCamera问题——Cause: null pointer dereference
记录遇到的问题. 采用的开源库链接:https://github.com/saki4510t/UVCCamera 使用该库预览的时候,如果拔掉uvc设备,会造成异常闪退. signal 11 (SIG ...
最新文章
- 根据类名与字段名称取值(可用于循环取实体所有值非常好用)
- iOS中正则表达式的使用
- ACM基础题 - 去除字符序列中的几个字符
- 详解PCB抄板过程,太牛了!
- Java技巧: 根据网址查询DNS/IP地址
- oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及临时解决方案...
- JEECG_3.7 权限开发视频正式发布
- jQuery ligerUI中通过ligerDateEditor设置默认日期
- java模拟银行_java模拟银行交易系统程序
- 个人认为,载人登陆火星技术上无法实现
- 贪心字典序最小问题poj3617
- 数据结构算法常见面试考题
- python做积分_python曲线积分
- 激光打印机与计算机相连,Hp laserjet1010打印机怎么连接电脑使用?
- 用户管理后台管理项目总结
- Python 三人斗地主手牌生成
- 《缠中说禅108课》66:主力资金的食物链
- UNITY中FMOD音效插件使用
- 面试摘要【持续更新】
- Java基础篇(集合)