+ -
当前位置:首页 → 问答吧 → LINUX中USB的INIT有个浅显的错误,不知大家发现没有?

LINUX中USB的INIT有个浅显的错误,不知大家发现没有?

时间:2011-10-08

来源:互联网

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,这是个错误,还是我理解有误?

作者: hb0zyj3540   发布时间: 2011-10-08

你的理解错了,如果bus_register()失败,表明没有注册成功,因此也就不需要bus_unregister()了。

作者: aria   发布时间: 2011-10-08