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

自己如何做独立网站app推广赚钱

自己如何做独立网站,app推广赚钱,微信小程序开发大赛,网站购物分享seo背景 最近移植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.khdw.cn/news/63828.html

相关文章:

  • 西安网站建设xazxcy谷歌google中文登录入口
  • 在线销售型的网站盐城seo营销
  • 怎么开彩票网站做站长北京网站推广公司
  • 国外的网站建设营销推广是什么
  • 做公司网站排名热门推广软件
  • 灯箱网站开发苏州seo推广
  • 网站制作遨游免费google官方下载安装
  • 怎么注销网站备案东莞搜索网络优化
  • 公司注册资本最低多少郑州seo顾问
  • 怎么区分模板网站和定制网站360优化大师历史版本
  • 网站开发的软件支持关键词排名优化品牌
  • 做二手房怎找房源网站高报师培训机构排名
  • 随意设计一个网站查询收录
  • 黑龙江建设工程招标网seo有哪些经典的案例
  • 网站推广公司哎奶茶seo网络营销技巧
  • 个人建设网站友情链接交换平台有哪些
  • aspsql server典型网站建设案例 源码如何发布视频赚钱
  • 网站建设市场长沙网站定制公司
  • wordpress可以做oa系统吗宁波正规seo推广
  • 小语种网站建设及推广免费源码下载网站
  • 成都网站建设 城软件推广平台
  • 手机好看网站模板免费下载海外推广渠道都有哪些
  • 海尔电商网站建设方案西安seo搜推宝
  • 河北网络推广系统搜狗整站优化
  • 做网站 计算机有交嘛太原seo推广
  • 个人域名用来做淘宝客网站浙江百度查关键词排名
  • 网站建设方案范文网站制作工具
  • 做店标 做店招的网站seo分析案例
  • 微信小程序api是什么意思温州最好的seo
  • 天蝎网站建设公司网页seo搜索引擎优化