首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

LINUX中USB的INIT有个浅显的异常,不知大家发现没有

2012-06-20 
LINUX中USB的INIT有个浅显的错误,不知大家发现没有?usb_init中有如下代码:static int_usb_init(void){....

LINUX中USB的INIT有个浅显的错误,不知大家发现没有?
usb_init中有如下代码:
static int_usb_init(void)
{
......
retval=bus_register(&usb_bus_type);
if(retval)
  goto bus_register_failed;
......
  bus_unregister(&usb_bus_type);
bus_register_failed:
  ksuspend_usb_cleanup
......
}
如果调用bus_register(&usb_bus_type)失败,应该调用bus_unregister(&usb_bus_type),大家看看上面的程序调用了什么?竟然调用了ksuspend_usb_cleanup,这是个错误,还是我理解有误?

[解决办法]
个人认为这个 ksuspend_usb_cleanup 应该代表一系列的反操作,清除在bus_register()之前申请的一些资源。

热点排行