mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
staging: most: usb: move allocation of URB out of critical section
This patch puts the call to usb_alloc_urb() before the critical section starts that is protected with the io_mutex lock. This is to make the section as short as possible and to use the regular GFP_KERNEL flag. Signed-off-by: Christian Gromm <christian.gromm@microchip.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Link: https://lore.kernel.org/r/1590570387-27069-6-git-send-email-christian.gromm@microchip.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2c069b61a8
commit
8bf56cfafa
1 changed files with 5 additions and 7 deletions
|
@ -467,18 +467,16 @@ static int hdm_enqueue(struct most_interface *iface, int channel,
|
|||
if (iface->num_channels <= channel || channel < 0)
|
||||
return -ECHRNG;
|
||||
|
||||
urb = usb_alloc_urb(NO_ISOCHRONOUS_URB, GFP_KERNEL);
|
||||
if (!urb)
|
||||
return -ENOMEM;
|
||||
|
||||
conf = &mdev->conf[channel];
|
||||
|
||||
mutex_lock(&mdev->io_mutex);
|
||||
if (!mdev->usb_device) {
|
||||
retval = -ENODEV;
|
||||
goto unlock_io_mutex;
|
||||
}
|
||||
|
||||
urb = usb_alloc_urb(NO_ISOCHRONOUS_URB, GFP_ATOMIC);
|
||||
if (!urb) {
|
||||
retval = -ENOMEM;
|
||||
goto unlock_io_mutex;
|
||||
goto err_free_urb;
|
||||
}
|
||||
|
||||
if ((conf->direction & MOST_CH_TX) && mdev->padding_active[channel] &&
|
||||
|
|
Loading…
Reference in a new issue