高通平台稳定性分析-CFI failure

本文分析了一起高通平台相机模块由于CFI failure导致的内核panic问题。通过dmesg日志和Trace32调试,发现在cam_subdev_ioctl函数中对链表节点进行操作时出现问题。进一步研究发现,可能是未正确设置v4l2_subdevdata为NULL导致。通过查看链表节点和cam_subdev结构体,确定问题出在cam-isp模块的unbind函数中,解决方案是在卸载时将相应节点设为NULL。

一、查看 dmesg_TZ.txt中的错误:

Kernel panic - not syncing: CFI failure (target: 0xffffff804323a848)

Call trace:
 dump_backtrace.cfi_jt+0x0/0x8
 dump_stack_lvl+0x94/0xe0
 panic+0x1a0/0x468
 cfi_module_add+0x0/0x24
 find_check_fn+0x0/0x258
 cam_subdev_ioctl+0x21c/0x224 [camera]
 cam_req_mgr_close+0x144/0x344 [camera]
 v4l2_release+0xd0/0x194
...

从调用栈可以看出,在调用cam_subdev_ioctl函数的时候检查函数参数的时候出错了。

二、Trace32 load 结合代码查看具体位置:

右侧图可以看到:函数出问题的位置在cam_subdev.c的 77行

左侧图中可以看到

①sd_handler=0xFFFFFF804323A848,同dmesg_TZ.txt的信息匹配。

②node结构体的内容有异常,name内容是乱码,正常应该是个字符串

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

thonmin

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值