diff options
Diffstat (limited to 'drivers/staging/netlogic/xlr_net.c')
-rw-r--r-- | drivers/staging/netlogic/xlr_net.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/staging/netlogic/xlr_net.c b/drivers/staging/netlogic/xlr_net.c index 8554fcf4321b..07a06c532dee 100644 --- a/drivers/staging/netlogic/xlr_net.c +++ b/drivers/staging/netlogic/xlr_net.c @@ -87,8 +87,7 @@ static inline unsigned char *xlr_alloc_skb(void) if (!skb) return NULL; skb_data = skb->data; - skb_put(skb, MAC_SKB_BACK_PTR_SIZE); - skb_pull(skb, MAC_SKB_BACK_PTR_SIZE); + skb_reserve(skb, MAC_SKB_BACK_PTR_SIZE); memcpy(skb_data, &skb, buf_len); return skb->data; @@ -185,10 +184,8 @@ static int xlr_net_fill_rx_ring(struct net_device *ndev) for (i = 0; i < MAX_FRIN_SPILL / 4; i++) { skb_data = xlr_alloc_skb(); - if (!skb_data) { - netdev_err(ndev, "SKB allocation failed\n"); + if (!skb_data) return -ENOMEM; - } send_to_rfr_fifo(priv, skb_data); } netdev_info(ndev, "Rx ring setup done\n"); @@ -389,10 +386,8 @@ static void *xlr_config_spill(struct xlr_net_priv *priv, int reg_start_0, base = priv->base_addr; spill_size = size; spill = kmalloc(spill_size + SMP_CACHE_BYTES, GFP_ATOMIC); - if (!spill) { - pr_err("Unable to allocate memory for spill area!\n"); + if (!spill) return ZERO_SIZE_PTR; - } spill = PTR_ALIGN(spill, SMP_CACHE_BYTES); phys_addr = virt_to_phys(spill); |