static void skel_disconnect(struct usb_interface *interface)
{
struct usb_skel *dev;
int minor = interface->minor;
dev = usb_get_intfdata(interface);
usb_set_intfdata(interface, NULL);
/* give back our minor */ 返回 我们 此设备号
usb_deregister_dev(interface, &skel_class);
/* prevent more I/O from starting */ **阻止 更多的 io访问 吧
mutex_lock(&dev->io_mutex);
dev->interface = NULL;
mutex_unlock(&dev->io_mutex);0
usb_kill_anchored_urbs(&dev->submitted);
/* decrement our usage count */ 减小 使用次数
kref_put(&dev->kref, skel_delete);
dev_info(&interface->dev, "USB Skeleton #%d now disconnected", minor);
}
usb-skeleton.c 之 17--- skel_disconnect
最新推荐文章于 2021-12-28 17:59:31 发布