usb-core: Make usb_free_streams return an error
The hcd-driver free_streams method can return an error, so lets properly propagate that. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
37c3a3c4ff
commit
6c74dada4f
2 changed files with 8 additions and 5 deletions
|
|
@ -2075,8 +2075,11 @@ EXPORT_SYMBOL_GPL(usb_alloc_streams);
|
||||||
*
|
*
|
||||||
* Reverts a group of bulk endpoints back to not using stream IDs.
|
* Reverts a group of bulk endpoints back to not using stream IDs.
|
||||||
* Can fail if we are given bad arguments, or HCD is broken.
|
* Can fail if we are given bad arguments, or HCD is broken.
|
||||||
|
*
|
||||||
|
* Return: On success, the number of allocated streams. On failure, a negative
|
||||||
|
* error code.
|
||||||
*/
|
*/
|
||||||
void usb_free_streams(struct usb_interface *interface,
|
int usb_free_streams(struct usb_interface *interface,
|
||||||
struct usb_host_endpoint **eps, unsigned int num_eps,
|
struct usb_host_endpoint **eps, unsigned int num_eps,
|
||||||
gfp_t mem_flags)
|
gfp_t mem_flags)
|
||||||
{
|
{
|
||||||
|
|
@ -2087,14 +2090,14 @@ void usb_free_streams(struct usb_interface *interface,
|
||||||
dev = interface_to_usbdev(interface);
|
dev = interface_to_usbdev(interface);
|
||||||
hcd = bus_to_hcd(dev->bus);
|
hcd = bus_to_hcd(dev->bus);
|
||||||
if (dev->speed != USB_SPEED_SUPER)
|
if (dev->speed != USB_SPEED_SUPER)
|
||||||
return;
|
return -EINVAL;
|
||||||
|
|
||||||
/* Streams only apply to bulk endpoints. */
|
/* Streams only apply to bulk endpoints. */
|
||||||
for (i = 0; i < num_eps; i++)
|
for (i = 0; i < num_eps; i++)
|
||||||
if (!eps[i] || !usb_endpoint_xfer_bulk(&eps[i]->desc))
|
if (!eps[i] || !usb_endpoint_xfer_bulk(&eps[i]->desc))
|
||||||
return;
|
return -EINVAL;
|
||||||
|
|
||||||
hcd->driver->free_streams(hcd, dev, eps, num_eps, mem_flags);
|
return hcd->driver->free_streams(hcd, dev, eps, num_eps, mem_flags);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(usb_free_streams);
|
EXPORT_SYMBOL_GPL(usb_free_streams);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -702,7 +702,7 @@ extern int usb_alloc_streams(struct usb_interface *interface,
|
||||||
unsigned int num_streams, gfp_t mem_flags);
|
unsigned int num_streams, gfp_t mem_flags);
|
||||||
|
|
||||||
/* Reverts a group of bulk endpoints back to not using stream IDs. */
|
/* Reverts a group of bulk endpoints back to not using stream IDs. */
|
||||||
extern void usb_free_streams(struct usb_interface *interface,
|
extern int usb_free_streams(struct usb_interface *interface,
|
||||||
struct usb_host_endpoint **eps, unsigned int num_eps,
|
struct usb_host_endpoint **eps, unsigned int num_eps,
|
||||||
gfp_t mem_flags);
|
gfp_t mem_flags);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue