diff options
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/hcd.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index ace9f8442e5..8669ba3fe79 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c | |||
@@ -337,6 +337,17 @@ static const u8 ss_rh_config_descriptor[] = { | |||
337 | 0x02, 0x00 /* __le16 ss_wBytesPerInterval; 15 bits for max 15 ports */ | 337 | 0x02, 0x00 /* __le16 ss_wBytesPerInterval; 15 bits for max 15 ports */ |
338 | }; | 338 | }; |
339 | 339 | ||
340 | /* authorized_default behaviour: | ||
341 | * -1 is authorized for all devices except wireless (old behaviour) | ||
342 | * 0 is unauthorized for all devices | ||
343 | * 1 is authorized for all devices | ||
344 | */ | ||
345 | static int authorized_default = -1; | ||
346 | module_param(authorized_default, int, S_IRUGO|S_IWUSR); | ||
347 | MODULE_PARM_DESC(authorized_default, | ||
348 | "Default USB device authorization: 0 is not authorized, 1 is " | ||
349 | "authorized, -1 is authorized except for wireless USB (default, " | ||
350 | "old behaviour"); | ||
340 | /*-------------------------------------------------------------------------*/ | 351 | /*-------------------------------------------------------------------------*/ |
341 | 352 | ||
342 | /** | 353 | /** |
@@ -2371,7 +2382,11 @@ int usb_add_hcd(struct usb_hcd *hcd, | |||
2371 | 2382 | ||
2372 | dev_info(hcd->self.controller, "%s\n", hcd->product_desc); | 2383 | dev_info(hcd->self.controller, "%s\n", hcd->product_desc); |
2373 | 2384 | ||
2374 | hcd->authorized_default = hcd->wireless? 0 : 1; | 2385 | /* Keep old behaviour if authorized_default is not in [0, 1]. */ |
2386 | if (authorized_default < 0 || authorized_default > 1) | ||
2387 | hcd->authorized_default = hcd->wireless? 0 : 1; | ||
2388 | else | ||
2389 | hcd->authorized_default = authorized_default; | ||
2375 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); | 2390 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); |
2376 | 2391 | ||
2377 | /* HC is in reset state, but accessible. Now do the one-time init, | 2392 | /* HC is in reset state, but accessible. Now do the one-time init, |