usb: interface authorization: Control interface probing and claiming
Driver probings and interface claims get rejected if an interface is not authorized. Signed-off-by: Stefan Koch <skoch@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
1d958bef45
Коммит
de7718bd9c
|
@ -296,6 +296,10 @@ static int usb_probe_interface(struct device *dev)
|
||||||
if (udev->authorized == 0) {
|
if (udev->authorized == 0) {
|
||||||
dev_err(&intf->dev, "Device is not authorized for usage\n");
|
dev_err(&intf->dev, "Device is not authorized for usage\n");
|
||||||
return error;
|
return error;
|
||||||
|
} else if (intf->authorized == 0) {
|
||||||
|
dev_err(&intf->dev, "Interface %d is not authorized for usage\n",
|
||||||
|
intf->altsetting->desc.bInterfaceNumber);
|
||||||
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
id = usb_match_dynamic_id(intf, driver);
|
id = usb_match_dynamic_id(intf, driver);
|
||||||
|
@ -508,6 +512,10 @@ int usb_driver_claim_interface(struct usb_driver *driver,
|
||||||
if (dev->driver)
|
if (dev->driver)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
|
/* reject claim if not iterface is not authorized */
|
||||||
|
if (!iface->authorized)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
udev = interface_to_usbdev(iface);
|
udev = interface_to_usbdev(iface);
|
||||||
|
|
||||||
dev->driver = &driver->drvwrap.driver;
|
dev->driver = &driver->drvwrap.driver;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче