staging: usbip: userspace: don't throw error when trying to read configuration specific attributes
When a device has just been bound to usbip-host but the client hasn't set a configuration on it, certain attributes will not exist. Don't treat this as an error. Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6080cd0e92
commit
87f627f7bd
|
@ -127,10 +127,23 @@ int read_attr_value(struct udev_device *dev, const char *name,
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The client chooses the device configuration
|
||||||
|
* when attaching it so right after being bound
|
||||||
|
* to usbip-host on the server the device will
|
||||||
|
* have no configuration.
|
||||||
|
* Therefore, attributes such as bConfigurationValue
|
||||||
|
* and bNumInterfaces will not exist and sscanf will
|
||||||
|
* fail. Check for these cases and don't treat them
|
||||||
|
* as errors.
|
||||||
|
*/
|
||||||
|
|
||||||
ret = sscanf(attr, format, &num);
|
ret = sscanf(attr, format, &num);
|
||||||
if (ret < 1) {
|
if (ret < 1) {
|
||||||
err("sscanf failed");
|
if (strcmp(name, "bConfigurationValue") &&
|
||||||
goto err;
|
strcmp(name, "bNumInterfaces")) {
|
||||||
|
err("sscanf failed for attribute %s", name);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
Loading…
Reference in New Issue