Re: is there a reason "usbhid.quirks" parameter is not root writable?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 12, 2015 at 03:15:41AM -0700, Robert P. J. Day wrote:
> 
>   short form: is there some reason that the usbhid "quirks" parameter
> is not by default compiled to be writable in case you wanted to adjust
> those values on a running system?
> 
>   long form: i have a USB device that, sadly, is automatically claimed
> by the usbhid driver upon insertion, and i want to prevent that so it
> behaves as a regular USB device. from what i've read, the solution is
> to, at boot time, add the kernel command line parameter:
> 
>   usbhid.quirks=0x2123:0x1010:0x04
> 
> that's fine if i want to reboot so that that takes effect, but it
> would of course be convenient if i could add that info to
> /sys/module/usbhid/parameters/quirks at run-time. currently, on my
> fedora 22 system:
> 
> $ cat /sys/module/usbhid/parameters/quirks
> (null),(null),(null),(null)
> $
> 
> with permissions:
> 
> $ ls -l /sys/module/usbhid/parameters/quirks
> -r--r--r--. 1 root root 4096 Nov 12 02:41 /sys/module/usbhid/parameters/quirks
> $
> 
> and i can see in drivers/hid/usbhid/hid-core.c the fact that that
> array is defined as non-writable:
> 
> /* Quirks specified at module load time */
> static char *quirks_param[MAX_USBHID_BOOT_QUIRKS];
> module_param_array_named(quirks, quirks_param, charp, NULL, 0444);
> MODULE_PARM_DESC(quirks, "Add/modify USB HID quirks by specifying "
>                 " quirks=vendorID:productID:quirks"
>                 " where vendorID, productID, and quirks are all in"
>                 " 0x-prefixed hex");
> 
> so the obvious(?) question is, is there some reason that that
> parameter is defined as read-only rather than, say, writable by root?
> would it not be useful to be able to modify that parameter at
> run-time? or is there something about that parameter for which that
> would be a really bad idea?

You can add a runtime quirk to the device itself when it shows up in
sysfs for the hid driver.  Use that instead of the module parameter for
that specific device.

hope this helps,

greg k-h

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux