Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: Fix warnings in chaoskey driver

> drivers/usb/misc/chaoskey.c: In function 'chaoskey_read':
> >> drivers/usb/misc/chaoskey.c:412:3: error: implicit declaration of function 'copy_to_user'
> >> [-Werror=implicit-function-declaration]
> remain = copy_to_user(buffer, dev->buf + dev->used, this_time);

I was unable to reproduce this locally, but added an explicit

#include <linux/uaccess.h>

which should ensure the definition on all architectures.

> sparse warnings: (new ones prefixed by >>)
>
> >> drivers/usb/misc/chaoskey.c:117:30: sparse: incorrect type in assignment (different base types)
> drivers/usb/misc/chaoskey.c:117:30: expected int [signed] size
> drivers/usb/misc/chaoskey.c:117:30: got restricted __le16 [usertype] wMaxPacketSize

Switched the code to using the USB descriptor accessor functions.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Keith Packard and committed by
Greg Kroah-Hartman
8b86ed07 f4ea80a6

+4 -2
+4 -2
drivers/usb/misc/chaoskey.c
··· 27 27 #include <linux/usb.h> 28 28 #include <linux/wait.h> 29 29 #include <linux/hw_random.h> 30 + #include <linux/mutex.h> 31 + #include <linux/uaccess.h> 30 32 31 33 static struct usb_driver chaoskey_driver; 32 34 static struct usb_class_driver chaoskey_class; ··· 115 113 /* Find the first bulk IN endpoint and its packet size */ 116 114 for (i = 0; i < altsetting->desc.bNumEndpoints; i++) { 117 115 if (usb_endpoint_is_bulk_in(&altsetting->endpoint[i].desc)) { 118 - in_ep = altsetting->endpoint[i].desc.bEndpointAddress; 119 - size = altsetting->endpoint[i].desc.wMaxPacketSize; 116 + in_ep = usb_endpoint_num(&altsetting->endpoint[i].desc); 117 + size = usb_endpoint_maxp(&altsetting->endpoint[i].desc); 120 118 break; 121 119 } 122 120 }