REDHAT-LINUX kernel-3.10.0-862*版本断开蓝牙键鼠出现死机的问题

在redhat linux 3.10.0的862版本出现此问题,断开蓝牙键鼠设备连接时出现死机,该问题在957版本得到修复。

原因是断开连接时经过hid模块的hidinput_cleanup_battery(),其内部的power_supply_unregister() 已经释放过一次的内存被下面的kfree又释放了一次,造成内存问题,所以出现死机的问题。修改方式如下:

修改文件:kernel/driver/hid/hid-input.c

 static void hidinput_cleanup_battery(struct hid_device *dev)
 {
+	const struct power_supply_desc *psy_desc;
+
 	if (!dev->battery)
 		return;
 
+	psy_desc = dev->battery->desc;
 	power_supply_unregister(dev->battery);
-	kfree(dev->battery->desc->name);
-	kfree(dev->battery->desc);
+	kfree(psy_desc->name);
+	kfree(psy_desc);
 	dev->battery = NULL;
 }
 #else  /* !CONFIG_HID_BATTERY_STRENGTH */

按如上代码即可修复死机问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值