Message ID | 20191204143035.31751-1-info@metux.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: make usb_interrupt_msg() a static inline | expand |
On Wed, Dec 04, 2019 at 03:30:35PM +0100, Enrico Weigelt, metux IT consult wrote: > usb_interrupt_msg() effectively is just an alias for usb_bulk_msg(), > no need for being an real function, thus converting it to an > inline function. Why? What did you just save/help with here? This actually made the code worse: > /** > - * usb_interrupt_msg - Builds an interrupt urb, sends it off and waits for completion > - * @usb_dev: pointer to the usb device to send the message to > - * @pipe: endpoint "pipe" to send the message to > - * @data: pointer to the data to send > - * @len: length in bytes of the data to send > - * @actual_length: pointer to a location to put the actual length transferred > - * in bytes > - * @timeout: time in msecs to wait for the message to complete before > - * timing out (if 0 the wait is forever) > - * > - * Context: !in_interrupt () > - * > - * This function sends a simple interrupt message to a specified endpoint and > - * waits for the message to complete, or timeout. > - * > - * Don't use this function from within an interrupt context. If you need > - * an asynchronous message, or need to send a message from within interrupt > - * context, use usb_submit_urb() If a thread in your driver uses this call, > - * make sure your disconnect() method can wait for it to complete. Since you > - * don't have a handle on the URB used, you can't cancel the request. > - * > - * Return: > - * If successful, 0. Otherwise a negative error number. The number of actual > - * bytes transferred will be stored in the @actual_length parameter. > - */ > -int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, > - void *data, int len, int *actual_length, int timeout) > -{ > - return usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout); > -} > -EXPORT_SYMBOL_GPL(usb_interrupt_msg); You now lost all of that wonderful documentation on how to use this function, makeing the kernel harder to use instead of easier. So this is a net-loss overall, ick, why??? greg k-h
On Wed, Dec 04, 2019 at 03:30:35PM +0100, Enrico Weigelt, metux IT consult wrote: > usb_interrupt_msg() effectively is just an alias for usb_bulk_msg(), > no need for being an real function, thus converting it to an > inline function. > > Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> You also didn't even cc: the proper people as per scripts/get_maintainer.pl so you obviously didn't even want the patch to be reviewed or applied :(
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 5adf489428aa..d6088b77e05a 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -162,39 +162,6 @@ int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, EXPORT_SYMBOL_GPL(usb_control_msg); /** - * usb_interrupt_msg - Builds an interrupt urb, sends it off and waits for completion - * @usb_dev: pointer to the usb device to send the message to - * @pipe: endpoint "pipe" to send the message to - * @data: pointer to the data to send - * @len: length in bytes of the data to send - * @actual_length: pointer to a location to put the actual length transferred - * in bytes - * @timeout: time in msecs to wait for the message to complete before - * timing out (if 0 the wait is forever) - * - * Context: !in_interrupt () - * - * This function sends a simple interrupt message to a specified endpoint and - * waits for the message to complete, or timeout. - * - * Don't use this function from within an interrupt context. If you need - * an asynchronous message, or need to send a message from within interrupt - * context, use usb_submit_urb() If a thread in your driver uses this call, - * make sure your disconnect() method can wait for it to complete. Since you - * don't have a handle on the URB used, you can't cancel the request. - * - * Return: - * If successful, 0. Otherwise a negative error number. The number of actual - * bytes transferred will be stored in the @actual_length parameter. - */ -int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, - void *data, int len, int *actual_length, int timeout) -{ - return usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout); -} -EXPORT_SYMBOL_GPL(usb_interrupt_msg); - -/** * usb_bulk_msg - Builds a bulk urb, sends it off and waits for completion * @usb_dev: pointer to the usb device to send the message to * @pipe: endpoint "pipe" to send the message to diff --git a/include/linux/usb.h b/include/linux/usb.h index e656e7b4b1e4..0c96535bd5a0 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -1783,12 +1783,16 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in, extern int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, __u8 requesttype, __u16 value, __u16 index, void *data, __u16 size, int timeout); -extern int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, - void *data, int len, int *actual_length, int timeout); extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, void *data, int len, int *actual_length, int timeout); +static inline int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, + void *data, int len, int *actual_length, int timeout) +{ + return usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout); +} + /* wrappers around usb_control_msg() for the most common standard requests */ extern int usb_get_descriptor(struct usb_device *dev, unsigned char desctype, unsigned char descindex, void *buf, int size);
usb_interrupt_msg() effectively is just an alias for usb_bulk_msg(), no need for being an real function, thus converting it to an inline function. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> --- drivers/usb/core/message.c | 33 --------------------------------- include/linux/usb.h | 8 ++++++-- 2 files changed, 6 insertions(+), 35 deletions(-)