diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-10-08 09:30:04 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-10-08 09:30:04 +0200 |
commit | d820306cbe56fb010f500ae58f9725f49812d39a (patch) | |
tree | 1c9554107c7f279d05d6f54b1b5d69735d51195d /drivers/net/wireless/rtl818x/rtl8187/dev.c | |
parent | ALSA: usb-audio: support wireless devices in snd_usb_parse_datainterval (diff) | |
parent | ALSA: hda - hdmi: Fix channel map switch not taking effect (diff) | |
download | linux-d820306cbe56fb010f500ae58f9725f49812d39a.tar.xz linux-d820306cbe56fb010f500ae58f9725f49812d39a.zip |
Merge branch 'for-linus' into for-next
For updating the HDMI chmap fix.
Conflicts:
sound/pci/hda/patch_hdmi.c
Diffstat (limited to 'drivers/net/wireless/rtl818x/rtl8187/dev.c')
-rw-r--r-- | drivers/net/wireless/rtl818x/rtl8187/dev.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/net/wireless/rtl818x/rtl8187/dev.c b/drivers/net/wireless/rtl818x/rtl8187/dev.c index 841fb9dfc9da..9a6edb0c014e 100644 --- a/drivers/net/wireless/rtl818x/rtl8187/dev.c +++ b/drivers/net/wireless/rtl818x/rtl8187/dev.c @@ -438,17 +438,16 @@ static int rtl8187_init_urbs(struct ieee80211_hw *dev) skb_queue_tail(&priv->rx_queue, skb); usb_anchor_urb(entry, &priv->anchored); ret = usb_submit_urb(entry, GFP_KERNEL); + usb_put_urb(entry); if (ret) { skb_unlink(skb, &priv->rx_queue); usb_unanchor_urb(entry); goto err; } - usb_free_urb(entry); } return ret; err: - usb_free_urb(entry); kfree_skb(skb); usb_kill_anchored_urbs(&priv->anchored); return ret; @@ -956,8 +955,12 @@ static int rtl8187_start(struct ieee80211_hw *dev) (RETRY_COUNT << 8 /* short retry limit */) | (RETRY_COUNT << 0 /* long retry limit */) | (7 << 21 /* MAX TX DMA */)); - rtl8187_init_urbs(dev); - rtl8187b_init_status_urb(dev); + ret = rtl8187_init_urbs(dev); + if (ret) + goto rtl8187_start_exit; + ret = rtl8187b_init_status_urb(dev); + if (ret) + usb_kill_anchored_urbs(&priv->anchored); goto rtl8187_start_exit; } @@ -966,7 +969,9 @@ static int rtl8187_start(struct ieee80211_hw *dev) rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0); rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0); - rtl8187_init_urbs(dev); + ret = rtl8187_init_urbs(dev); + if (ret) + goto rtl8187_start_exit; reg = RTL818X_RX_CONF_ONLYERLPKT | RTL818X_RX_CONF_RX_AUTORESETPHY | |