usb: add PRODUCT, TYPE to usb-interface events
This fixes a regression for userspace programs that were relying on these events. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Cc: Andreas Jellinghaus <aj@ciphirelabs.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
83fc8a151b
commit
d65cc1b45e
|
@ -1358,6 +1358,30 @@ static int usb_if_uevent(struct device *dev, char **envp, int num_envp,
|
||||||
usb_dev = interface_to_usbdev(intf);
|
usb_dev = interface_to_usbdev(intf);
|
||||||
alt = intf->cur_altsetting;
|
alt = intf->cur_altsetting;
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_DEVICEFS
|
||||||
|
if (add_uevent_var(envp, num_envp, &i,
|
||||||
|
buffer, buffer_size, &length,
|
||||||
|
"DEVICE=/proc/bus/usb/%03d/%03d",
|
||||||
|
usb_dev->bus->busnum, usb_dev->devnum))
|
||||||
|
return -ENOMEM;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (add_uevent_var(envp, num_envp, &i,
|
||||||
|
buffer, buffer_size, &length,
|
||||||
|
"PRODUCT=%x/%x/%x",
|
||||||
|
le16_to_cpu(usb_dev->descriptor.idVendor),
|
||||||
|
le16_to_cpu(usb_dev->descriptor.idProduct),
|
||||||
|
le16_to_cpu(usb_dev->descriptor.bcdDevice)))
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
if (add_uevent_var(envp, num_envp, &i,
|
||||||
|
buffer, buffer_size, &length,
|
||||||
|
"TYPE=%d/%d/%d",
|
||||||
|
usb_dev->descriptor.bDeviceClass,
|
||||||
|
usb_dev->descriptor.bDeviceSubClass,
|
||||||
|
usb_dev->descriptor.bDeviceProtocol))
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
if (add_uevent_var(envp, num_envp, &i,
|
if (add_uevent_var(envp, num_envp, &i,
|
||||||
buffer, buffer_size, &length,
|
buffer, buffer_size, &length,
|
||||||
"INTERFACE=%d/%d/%d",
|
"INTERFACE=%d/%d/%d",
|
||||||
|
|
Loading…
Reference in New Issue