Any update regarding this patch series?

Thanks,
Helmut

Am Dienstag 16 November 2010 schrieb Helmut Schaa:
> Instead just drop the rx'ed frame silently and reuse the already
> available buffer.
> 
> Signed-off-by: Helmut Schaa <[email protected]>
> ---
>  target/linux/ramips/files/drivers/net/ramips.c |   35 
> +++++++++++++-----------
>  1 files changed, 19 insertions(+), 16 deletions(-)
> 
> diff --git a/target/linux/ramips/files/drivers/net/ramips.c 
> b/target/linux/ramips/files/drivers/net/ramips.c
> index fb6e6e8..fb849e8 100644
> --- a/target/linux/ramips/files/drivers/net/ramips.c
> +++ b/target/linux/ramips/files/drivers/net/ramips.c
> @@ -272,23 +272,26 @@ ramips_eth_rx_hw(unsigned long ptr)
>                       break;
>               max_rx--;
>  
> -             rx_skb = priv->rx_skb[rx];
> -             skb_put(rx_skb, RX_DMA_PLEN0(priv->rx[rx].rxd2));
> -             rx_skb->dev = dev;
> -             rx_skb->protocol = eth_type_trans(rx_skb, dev);
> -             rx_skb->ip_summed = CHECKSUM_NONE;
> -             dev->stats.rx_packets++;
> -             dev->stats.rx_bytes += rx_skb->len;
> -             netif_rx(rx_skb);
> -
>               new_skb = netdev_alloc_skb(dev, MAX_RX_LENGTH + 2);
> -             priv->rx_skb[rx] = new_skb;
> -             BUG_ON(!new_skb);
> -             skb_reserve(new_skb, 2);
> -             priv->rx[rx].rxd1 = dma_map_single(NULL,
> -                                                new_skb->data,
> -                                                MAX_RX_LENGTH + 2,
> -                                                DMA_FROM_DEVICE);
> +             /* Reuse the buffer on allocation failures */
> +             if (new_skb) {
> +                     rx_skb = priv->rx_skb[rx];
> +                     skb_put(rx_skb, RX_DMA_PLEN0(priv->rx[rx].rxd2));
> +                     rx_skb->dev = dev;
> +                     rx_skb->protocol = eth_type_trans(rx_skb, dev);
> +                     rx_skb->ip_summed = CHECKSUM_NONE;
> +                     dev->stats.rx_packets++;
> +                     dev->stats.rx_bytes += rx_skb->len;
> +                     netif_rx(rx_skb);
> +
> +                     priv->rx_skb[rx] = new_skb;
> +                     skb_reserve(new_skb, 2);
> +                     priv->rx[rx].rxd1 = dma_map_single(NULL,
> +                                                        new_skb->data,
> +                                                        MAX_RX_LENGTH + 2,
> +                                                        DMA_FROM_DEVICE);
> +             }
> +
>               priv->rx[rx].rxd2 &= ~RX_DMA_DONE;
>               wmb();
>               ramips_fe_wr(rx, RAMIPS_RX_CALC_IDX0);
> 

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to