lock_kernel unlock_kernel编译不通过
时间:2011-11-21
来源:互联网
lock_kernel unlock_kernel这两个函数在比较高的版本高编译出错,说没有这个定义,高版本的linux不用这个函数了吗?那要用什么函数来代替?
作者: X20A_StrikeFreedom 发布时间: 2011-11-21
这个是大内核锁啊,新的版本去掉了。这个锁定内核的办法很影响性能,人家为了把这个去掉都搞了好久了吧
这个可以完全去掉,或者转换成某个子系统的锁吧。
这个可以完全去掉,或者转换成某个子系统的锁吧。
作者: lvyinghong 发布时间: 2011-11-22
那在驱动中去掉这个锁应该不会出错吧?
作者: X20A_StrikeFreedom 发布时间: 2011-11-22
引用 2 楼 x20a_strikefreedom 的回复:
那在驱动中去掉这个锁应该不会出错吧?
那在驱动中去掉这个锁应该不会出错吧?
根据你的需求换成别的锁呗 神马自旋锁 互斥体之类的
大内核锁应该保护的是SMP的情况,如果你是单核cpu,那就更好改了
作者: deep_pro 发布时间: 2011-11-22
这个是在USB驱动框架里的 我应该换成什么锁 或是可以直接不用锁也没关系?
C/C++ code
C/C++ code
static void usb_disconnect(struct usb_intertace *interface) { struct usb_device *devp; //lock_kernel(); devp=usb_get_intfdata(interface); usb_set_intfdata(interface, NULL); usb_deregister_dev(interface, &usb_driver_class); //unlock_kernel(); kref_put(&devp->kref, usb_device_delete); }
作者: X20A_StrikeFreedom 发布时间: 2011-11-22
你应该参考你要移植到的linux源码里的写法 例如2.6.12里搜 usb_disconnect
void usb_disconnect(struct usb_device **pdev)
{
struct usb_device *udev = *pdev;
...
usb_lock_device(udev);
...
usb_unlock_device(udev);
...
}
void usb_disconnect(struct usb_device **pdev)
{
struct usb_device *udev = *pdev;
...
usb_lock_device(udev);
...
usb_unlock_device(udev);
...
}
作者: deep_pro 发布时间: 2011-11-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28