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>
This commit is contained in:
Родитель
680681747f
Коммит
c4fc2342cb
|
@ -2538,6 +2538,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
unknown_nmi_panic
|
||||
[X86] Cause panic on unknown NMI.
|
||||
|
||||
usbcore.authorized_default=
|
||||
[USB] Default USB device authorization:
|
||||
(default -1 = authorized except for wireless USB,
|
||||
0 = not authorized, 1 = authorized)
|
||||
|
||||
usbcore.autosuspend=
|
||||
[USB] The autosuspend time delay (in seconds) used
|
||||
for newly-detected USB devices (default 2). This
|
||||
|
|
|
@ -337,6 +337,17 @@ static const u8 ss_rh_config_descriptor[] = {
|
|||
0x02, 0x00 /* __le16 ss_wBytesPerInterval; 15 bits for max 15 ports */
|
||||
};
|
||||
|
||||
/* authorized_default behaviour:
|
||||
* -1 is authorized for all devices except wireless (old behaviour)
|
||||
* 0 is unauthorized for all devices
|
||||
* 1 is authorized for all devices
|
||||
*/
|
||||
static int authorized_default = -1;
|
||||
module_param(authorized_default, int, S_IRUGO|S_IWUSR);
|
||||
MODULE_PARM_DESC(authorized_default,
|
||||
"Default USB device authorization: 0 is not authorized, 1 is "
|
||||
"authorized, -1 is authorized except for wireless USB (default, "
|
||||
"old behaviour");
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
|
@ -2371,7 +2382,11 @@ int usb_add_hcd(struct usb_hcd *hcd,
|
|||
|
||||
dev_info(hcd->self.controller, "%s\n", hcd->product_desc);
|
||||
|
||||
hcd->authorized_default = hcd->wireless? 0 : 1;
|
||||
/* Keep old behaviour if authorized_default is not in [0, 1]. */
|
||||
if (authorized_default < 0 || authorized_default > 1)
|
||||
hcd->authorized_default = hcd->wireless? 0 : 1;
|
||||
else
|
||||
hcd->authorized_default = authorized_default;
|
||||
set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||
|
||||
/* HC is in reset state, but accessible. Now do the one-time init,
|
||||
|
|
Загрузка…
Ссылка в новой задаче