Hi Ben,

On Thu, 2014-02-27 at 11:57PM +0000, Ben Hutchings wrote:
> On Thu, 2014-02-27 at 13:58 -0800, Soren Brinkmann wrote:
> [...]
> > diff --git a/drivers/net/ethernet/cadence/macb.c 
> > b/drivers/net/ethernet/cadence/macb.c
> > index 3190d38e16fb..a9c2ccfc1740 100644
> > --- a/drivers/net/ethernet/cadence/macb.c
> > +++ b/drivers/net/ethernet/cadence/macb.c
> > @@ -632,11 +632,16 @@ static void gem_rx_refill(struct macb *bp)
> >                                        "Unable to allocate sk_buff\n");
> >                             break;
> >                     }
> > -                   bp->rx_skbuff[entry] = skb;
> >  
> >                     /* now fill corresponding descriptor entry */
> >                     paddr = dma_map_single(&bp->pdev->dev, skb->data,
> >                                            bp->rx_buffer_size, 
> > DMA_FROM_DEVICE);
> > +                   if (dma_mapping_error(&bp->pdev->dev, paddr)) {
> > +                           dev_kfree_skb(skb);
> > +                           break;
> > +                   }
> > +
> > +                   bp->rx_skbuff[entry] = skb;
> >  
> >                     if (entry == RX_RING_SIZE - 1)
> >                             paddr |= MACB_BIT(RX_WRAP);
> > @@ -1040,6 +1045,10 @@ static int macb_start_xmit(struct sk_buff *skb, 
> > struct net_device *dev)
> 
> A bit more context:
> 
>       entry = macb_tx_ring_wrap(bp->tx_head);
>       bp->tx_head++;
> 
> >     netdev_vdbg(bp->dev, "Allocated ring entry %u\n", entry);
> >     mapping = dma_map_single(&bp->pdev->dev, skb->data,
> >                              len, DMA_TO_DEVICE);
> > +   if (dma_mapping_error(&bp->pdev->dev, mapping)) {
> > +           kfree_skb(skb);
> > +           goto unlock;
> > +   }
> 
> You need to move the bp->tx_head increment below this error check.
> Sorry I didn't spot this the first time.

No problem. I'll wait till next week with a re-spin, in case somebody
else has comments.

        Sören


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to