1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
From: Sascha Hauer <s.hauer@pengutronix.de>
Date: Thu, 19 Dec 2019 19:30:15 +0100
Subject: [PATCH] usb: Forward error code from usb_set_configuration
Instead of returning -1 forward the error code and take the opportunity
to print the error string.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
drivers/usb/core/usb.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index ad3bacf23655..1c3dcb79a847 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -124,7 +124,7 @@ static int usb_set_configuration(struct usb_device *dev, int configuration)
dev->toggle[1] = 0;
return 0;
} else
- return -1;
+ return res;
}
/* The routine usb_set_maxpacket_ep() is extracted from the loop of routine
@@ -412,9 +412,11 @@ int usb_new_device(struct usb_device *dev)
usb_parse_config(dev, buf, 0);
usb_set_maxpacket(dev);
/* we set the default configuration here */
- if (usb_set_configuration(dev, dev->config.desc.bConfigurationValue)) {
- printf("failed to set default configuration " \
- "len %d, status %lX\n", dev->act_len, dev->status);
+ err = usb_set_configuration(dev, dev->config.desc.bConfigurationValue);
+ if (err) {
+ printf("Setting default configuration failed with: %s\n" \
+ "len %d, status %lX\n", strerror(-err),
+ dev->act_len, dev->status);
goto err_out;
}
pr_debug("new device: Mfr=%d, Product=%d, SerialNumber=%d\n",
|