当前位置: 首页 > news >正文

做代购的流程 韩国网站外链工具下载

做代购的流程 韩国网站,外链工具下载,网站建设需要经历什么步骤,做专题页的网站背景 最近移植TI电量计芯片bq40z50的驱动,移植完毕后,能正常读取电池信息了,但是无意中发现驱动卸载会导致Linux卡死,死前终端闪过大量打印,将putty的缓冲区都耗尽了,必须启用syslog转发并用visual syslog…

背景

最近移植TI电量计芯片bq40z50的驱动,移植完毕后,能正常读取电池信息了,但是无意中发现驱动卸载会导致Linux卡死,死前终端闪过大量打印,将putty的缓冲区都耗尽了,必须启用syslog转发并用visual syslog server接收才能全部看到:
驱动卸载导致Linux卡死
虽然实际应用中一般不会卸载此类驱动,但考虑到后果严重,还是想解决一下。

问题根因

其实,这是一个double freeBUG。

驱动在加载时调用devm_power_supply_register()注册了一个power_supply对象,在卸载时调用power_supply_unregister() 释放了之前注册的power_supply对象。

看上去一切正常,然而devm前缀意味着Linux会在驱动卸载后再次调用一次power_supply_unregister() ,释放devm_power_supply_register()之前注册的对象——即刚才已经释放了的power_supply对象——从而产生了double free操作,导致Linux卡死。

解决方法

fg_psy_register()函数里的devm_power_supply_register()替换成power_supply_register(),即去掉devm前缀。

直接删除fg_psy_unregister函数及对其的调用更好吧?

是的,这样更好,因为devres会在驱动加载失败时或卸载时自动(逆序)释放devm_xxx申请的资源。

不过考虑到有些设备相关操作可能会在第m个资源和第n个资源之间执行,如果用devm接口,则该操作就提前到所有资源释放前执行,可能会引入问题,还是保守点吧。

http://www.ds6.com.cn/news/49073.html

相关文章:

  • 自己做网站送外卖点点站长工具
  • 网站建设浦东产品推广文案
  • 网站优化公司电话hyein seo官网
  • 中山如何制作网站seo优化培训机构
  • 昆山建设投标网站啥都能看的浏览器
  • 大理网站制作公司惠城网站设计
  • 呼和浩特网站建设设计永久免费客服系统软件
  • wordpress评论打卡cpu优化软件
  • 广西建设厅网站资质查询厦门人才网手机版
  • 免费学校网站模板html友情链接多少钱一个
  • mvc 网站建设企业网站如何优化
  • 口碑好的盐城网站建设关键词seo是什么意思
  • 惠来网站建设各大免费推广网站
  • 网站建设费摊销几年湖南产品网络推广业务
  • 易语言如何做网站抖音权重查询工具
  • 讨论致同国际网站建设情况网络推广专家
  • 网站建设的cms系统腾讯企点注册
  • 衡水网站检测公司网络营销ppt怎么做
  • 西安网站建设公司都有哪些整合营销传播的六种方法
  • 免费奖励代码网站企业网站的推广方式和手段有哪些
  • 汶上哪个广告公司做网站长春最专业的seo公司
  • 考研网站做刷词深圳百度关键词排名
  • 做电影资源网站外贸网站建设公司哪家好
  • 建设部网站有建筑施工分包杭州seo关键字优化
  • 宝塔怎么做网站的301跳转网站seo哪家好
  • 网站建设的过程有哪些官网建设
  • 电子商务做网站肇庆seo按天计费
  • 个人网站建设哪家好杭州seo博客有哪些
  • 在哪些网站上做推广好大片ppt免费下载安装
  • 页游和做网站网站怎么做收录