Message ID | 20100505083047.GA4398@Chamillionaire.breakpoint.cc |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On May 5, 2010, at 3:30 AM, Sebastian Andrzej Siewior wrote: > From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > > The size for skbs which is added to the recycled list is using the > current descriptor size which is current MTU. gfar_new_skb() is also > using this size. So after changing or alteast increasing the MTU all > recycled skbs should be dropped. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- >>> I think we should probably do this in free_skb_resources. And remove >>> the call from gfar_close(). >> >> Ok, Sebastian please rework your patch as requested by Andy. > > This has the side effect of dropping them on reset which is not > required. Sure, but that's true of the buffers in the BD ring, too. My theory, here, is just that it's best to treat it the same as the other "skb resources". If we want to avoid reallocation during a reset, that's a separate patch. :) Acked-by: Andy Fleming <afleming@freescale.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Andy Fleming <afleming@freescale.com> Date: Wed, 5 May 2010 10:18:40 -0500 > > On May 5, 2010, at 3:30 AM, Sebastian Andrzej Siewior wrote: > >> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> >> >> The size for skbs which is added to the recycled list is using the >> current descriptor size which is current MTU. gfar_new_skb() is also >> using this size. So after changing or alteast increasing the MTU all >> recycled skbs should be dropped. >> >> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ... > Acked-by: Andy Fleming <afleming@freescale.com> Applied, thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 4e97ca1..5d3763f 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -1649,6 +1649,7 @@ static void free_skb_resources(struct gfar_private *priv) sizeof(struct rxbd8) * priv->total_rx_ring_size, priv->tx_queue[0]->tx_bd_base, priv->tx_queue[0]->tx_bd_dma_base); + skb_queue_purge(&priv->rx_recycle); } void gfar_start(struct net_device *dev) @@ -2088,7 +2089,6 @@ static int gfar_close(struct net_device *dev) disable_napi(priv); - skb_queue_purge(&priv->rx_recycle); cancel_work_sync(&priv->reset_task); stop_gfar(dev);