Commit c4fc2342cb611f945fa468e742759e25984005ad

Authored by Carl-Daniel Hailfinger
Committed by Greg Kroah-Hartman
1 parent 680681747f

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,