Commit c4fc2342cb611f945fa468e742759e25984005ad
Committed by
Greg Kroah-Hartman
1 parent
680681747f
Exists in
master
and in
4 other branches
USB: Add "authorized_default" parameter to the usbcore module
The "authorized_default" module parameter of usbcore controls the default for the authorized_default variable of each USB host controller. -1 is authorized for all devices except wireless (default, old behaviour) 0 is unauthorized for all devices 1 is authorized for all devices Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing 2 changed files with 21 additions and 1 deletions Side-by-side Diff
Documentation/kernel-parameters.txt
... | ... | @@ -2538,6 +2538,11 @@ |
2538 | 2538 | unknown_nmi_panic |
2539 | 2539 | [X86] Cause panic on unknown NMI. |
2540 | 2540 | |
2541 | + usbcore.authorized_default= | |
2542 | + [USB] Default USB device authorization: | |
2543 | + (default -1 = authorized except for wireless USB, | |
2544 | + 0 = not authorized, 1 = authorized) | |
2545 | + | |
2541 | 2546 | usbcore.autosuspend= |
2542 | 2547 | [USB] The autosuspend time delay (in seconds) used |
2543 | 2548 | for newly-detected USB devices (default 2). This |
drivers/usb/core/hcd.c
... | ... | @@ -337,6 +337,17 @@ |
337 | 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 @@ |
2371 | 2382 | |
2372 | 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 | 2390 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); |
2376 | 2391 | |
2377 | 2392 | /* HC is in reset state, but accessible. Now do the one-time init, |