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

做代购的流程 韩国网站网页制作app手机版

做代购的流程 韩国网站,网页制作app手机版,久久广告传媒有限公司,百度信息流网站可以做落地页吗背景 最近移植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.hrbkazy.com/news/33610.html

相关文章:

  • 泰州市网站制作公司长春网站优化
  • 怎样做网站外部样式制作app软件平台
  • wordpress手机怎么用站长工具seo综合查询
  • 静态网站什么样手机百度安装下载
  • 做华为网站的还有哪些功能吗知名品牌营销策划案例
  • 开网站怎么赚钱广东vs北京首钢
  • 苹果给第三方网站做图标百度提交入口的注意事项
  • 自己制作网站该怎么做市场推广计划方案
  • form e哪个网站做微信推广怎么做
  • 初学者做网站百度推广没有效果怎么办
  • 做暧暧暖网站欧美中国培训网官网
  • 网站开发及设计演讲海报百度推广怎么开户
  • 香港空间免费seo网络推广企业
  • 网站描文本网络app推广是什么工作
  • 如何建立单页网站培训心得体会500字
  • 管理网站建设源代码程序互动营销的案例及分析
  • 杭州网络公司建网站不要手贱搜这15个关键词
  • .net网站源码下载廊坊seo网站管理
  • 云网站开发网络营销就是
  • 济南润滑油网站制作网络营销推广策划方案
  • 怎么自己做网站空间官网seo是什么意思
  • 网站开发的母的目的和意义.网络营销师证
  • 网站建设旗舰品牌互联网最赚钱的行业
  • wordpress后台中文安装长沙seo全网营销
  • 推广网站设计推广方案怎样自己开发一款软件
  • 兰州网站制作成都微信广告推广价格表
  • 福建省幕墙建设网站要报备吗网店推广方法有哪些
  • 网页qq邮箱怎么改头像高端seo服务
  • 如何做链接淘宝客的网站吉林seo技术交流
  • 政府门户网站建设调查软文大全500篇