From: Inaky Perez-Gonzalez Date: Wed, 1 Aug 2007 03:34:04 +0000 (-0700) Subject: usb: usb_generic_probe() obeys authorization X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=f8a374648b58e5cfa14447eca866aed14a4fbfa8;p=linux-beck.git usb: usb_generic_probe() obeys authorization If called and the device is not authorized to be used, then we won't choose a configuration (as they are not a concept that exists for an unauthorized device). However, the device is added to the system. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c index b2fc2b115256..20b095050a16 100644 --- a/drivers/usb/core/generic.c +++ b/drivers/usb/core/generic.c @@ -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);