Commit 123b7b30 authored by Jaejoong Kim's avatar Jaejoong Kim Committed by Greg Kroah-Hartman

usb: core: update comments for send message functions

The commonly use of bottom halves are tasklet and workqueue. The big
difference between tasklet and workqueue is that the tasklet runs in
an interrupt context and the workqueue runs in a process context,
which means it can sleep if need be.

The comment for usb_control/interrupt/bulk_msg() functions note that do
not use this function within an interrupt context, like a 'bottom half'
handler. With this comment, it makes confuse about usage of these
functions.

To more clarify, remove 'bottom half' comment.
Signed-off-by: default avatarJaejoong Kim <climbbb.kim@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a47b66da
...@@ -122,12 +122,11 @@ static int usb_internal_control_msg(struct usb_device *usb_dev, ...@@ -122,12 +122,11 @@ static int usb_internal_control_msg(struct usb_device *usb_dev,
* This function sends a simple control message to a specified endpoint and * This function sends a simple control message to a specified endpoint and
* waits for the message to complete, or timeout. * waits for the message to complete, or timeout.
* *
* Don't use this function from within an interrupt context, like a bottom half * Don't use this function from within an interrupt context. If you need
* handler. If you need an asynchronous message, or need to send a message * an asynchronous message, or need to send a message from within interrupt
* from within interrupt context, use usb_submit_urb(). * context, use usb_submit_urb(). If a thread in your driver uses this call,
* If a thread in your driver uses this call, make sure your disconnect() * make sure your disconnect() method can wait for it to complete. Since you
* method can wait for it to complete. Since you don't have a handle on the * don't have a handle on the URB used, you can't cancel the request.
* URB used, you can't cancel the request.
* *
* Return: If successful, the number of bytes transferred. Otherwise, a negative * Return: If successful, the number of bytes transferred. Otherwise, a negative
* error number. * error number.
...@@ -173,12 +172,11 @@ EXPORT_SYMBOL_GPL(usb_control_msg); ...@@ -173,12 +172,11 @@ EXPORT_SYMBOL_GPL(usb_control_msg);
* This function sends a simple interrupt message to a specified endpoint and * This function sends a simple interrupt message to a specified endpoint and
* waits for the message to complete, or timeout. * waits for the message to complete, or timeout.
* *
* Don't use this function from within an interrupt context, like a bottom half * Don't use this function from within an interrupt context. If you need
* handler. If you need an asynchronous message, or need to send a message * an asynchronous message, or need to send a message from within interrupt
* from within interrupt context, use usb_submit_urb() If a thread in your * context, use usb_submit_urb() If a thread in your driver uses this call,
* driver uses this call, make sure your disconnect() method can wait for it to * make sure your disconnect() method can wait for it to complete. Since you
* complete. Since you don't have a handle on the URB used, you can't cancel * don't have a handle on the URB used, you can't cancel the request.
* the request.
* *
* Return: * Return:
* If successful, 0. Otherwise a negative error number. The number of actual * If successful, 0. Otherwise a negative error number. The number of actual
...@@ -207,12 +205,11 @@ EXPORT_SYMBOL_GPL(usb_interrupt_msg); ...@@ -207,12 +205,11 @@ EXPORT_SYMBOL_GPL(usb_interrupt_msg);
* This function sends a simple bulk message to a specified endpoint * This function sends a simple bulk message to a specified endpoint
* and waits for the message to complete, or timeout. * and waits for the message to complete, or timeout.
* *
* Don't use this function from within an interrupt context, like a bottom half * Don't use this function from within an interrupt context. If you need
* handler. If you need an asynchronous message, or need to send a message * an asynchronous message, or need to send a message from within interrupt
* from within interrupt context, use usb_submit_urb() If a thread in your * context, use usb_submit_urb() If a thread in your driver uses this call,
* driver uses this call, make sure your disconnect() method can wait for it to * make sure your disconnect() method can wait for it to complete. Since you
* complete. Since you don't have a handle on the URB used, you can't cancel * don't have a handle on the URB used, you can't cancel the request.
* the request.
* *
* Because there is no usb_interrupt_msg() and no USBDEVFS_INTERRUPT ioctl, * Because there is no usb_interrupt_msg() and no USBDEVFS_INTERRUPT ioctl,
* users are forced to abuse this routine by using it to submit URBs for * users are forced to abuse this routine by using it to submit URBs for
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment