diff options
Diffstat (limited to 'drivers/staging/gdm724x/gdm_usb.c')
-rw-r--r-- | drivers/staging/gdm724x/gdm_usb.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c index 483185bb4ec..d2a3b350ba6 100644 --- a/drivers/staging/gdm724x/gdm_usb.c +++ b/drivers/staging/gdm724x/gdm_usb.c @@ -664,9 +664,8 @@ static void do_tx(struct work_struct *work) if (!udev->send_complete) { spin_unlock_irqrestore(&tx->lock, flags); return; - } else { - udev->send_complete = 0; } + udev->send_complete = 0; if (!list_empty(&tx->hci_list)) { t = list_entry(tx->hci_list.next, struct usb_tx, list); @@ -682,6 +681,10 @@ static void do_tx(struct work_struct *work) } t = alloc_tx_struct(TX_BUF_SIZE); + if (t == NULL) { + spin_unlock_irqrestore(&tx->lock, flags); + return; + } t->callback = NULL; t->tx = tx; t->is_sdu = 1; |