diff mbox series

usb: make usb_interrupt_msg() a static inline

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

Commit Message

Enrico Weigelt, metux IT consult Dec. 4, 2019, 2:30 p.m. UTC
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(-)

Comments

Greg Kroah-Hartman Dec. 4, 2019, 5:20 p.m. UTC | #1
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
Greg KH Dec. 4, 2019, 5:21 p.m. UTC | #2
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 mbox series

Patch

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);