diff options
Diffstat (limited to 'drivers/staging/rtl8192u/r8192U_core.c')
-rw-r--r-- | drivers/staging/rtl8192u/r8192U_core.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 5981d6658320..5a2fab9fa772 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -2232,24 +2232,15 @@ short rtl8192_usb_initendpoints(struct net_device *dev) memset(priv->rx_urb, 0, sizeof(struct urb*) * MAX_RX_URB); priv->pp_rxskb = kcalloc(MAX_RX_URB, sizeof(struct sk_buff *), GFP_KERNEL); - if (priv->pp_rxskb == NULL) - goto destroy; - - goto _middle; - - -destroy: - kfree(priv->pp_rxskb); - kfree(priv->rx_urb); - - priv->pp_rxskb = NULL; - priv->rx_urb = NULL; - - DMESGE("Endpoint Alloc Failure"); - return -ENOMEM; + if (!priv->pp_rxskb) { + kfree(priv->rx_urb); + priv->pp_rxskb = NULL; + priv->rx_urb = NULL; -_middle: + DMESGE("Endpoint Alloc Failure"); + return -ENOMEM; + } printk("End of initendpoints\n"); return 0; @@ -2808,9 +2799,7 @@ static void rtl8192_init_priv_variable(struct net_device* dev) (priv->EarlyRxThreshold == 7 ? RCR_ONLYERLPKT:0); priv->AcmControl = 0; - priv->pFirmware = kmalloc(sizeof(rt_firmware), GFP_KERNEL); - if (priv->pFirmware) - memset(priv->pFirmware, 0, sizeof(rt_firmware)); + priv->pFirmware = kzalloc(sizeof(rt_firmware), GFP_KERNEL); /* rx related queue */ skb_queue_head_init(&priv->rx_queue); |