|
@@ -161,17 +161,20 @@ static int generic_probe(struct usb_device *udev)
|
|
|
/* Choose and set the configuration. This registers the interfaces
|
|
|
* with the driver core and lets interface drivers bind to them.
|
|
|
*/
|
|
|
- c = choose_configuration(udev);
|
|
|
- if (c >= 0) {
|
|
|
- err = usb_set_configuration(udev, c);
|
|
|
- if (err) {
|
|
|
- dev_err(&udev->dev, "can't set config #%d, error %d\n",
|
|
|
+ if (udev->authorized == 0)
|
|
|
+ dev_err(&udev->dev, "Device is not authorized for usage\n");
|
|
|
+ else {
|
|
|
+ c = choose_configuration(udev);
|
|
|
+ if (c >= 0) {
|
|
|
+ err = usb_set_configuration(udev, c);
|
|
|
+ if (err) {
|
|
|
+ dev_err(&udev->dev, "can't set config #%d, error %d\n",
|
|
|
c, err);
|
|
|
- /* This need not be fatal. The user can try to
|
|
|
- * set other configurations. */
|
|
|
+ /* This need not be fatal. The user can try to
|
|
|
+ * set other configurations. */
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
/* USB device state == configured ... usable */
|
|
|
usb_notify_add_device(udev);
|
|
|
|