* [PATCH] ibm_newemac: Fixes entry of short packets
@ 2008-06-23 12:55 Stefan Roese
2008-06-23 23:20 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Roese @ 2008-06-23 12:55 UTC (permalink / raw)
To: linuxppc-dev, netdev; +Cc: Sathya Narayanan
From: Sathya Narayanan <sathyan@teamf1.com>
Short packets has to be discarded by the driver. So this patch addresses the
issue of discarding the short packets of size lesser then ethernet header
size.
Signed-off-by: Sathya Narayanan <sathyan@teamf1.com>
Signed-off-by: Stefan Roese <sr@denx.de>
---
drivers/net/ibm_newemac/core.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index 6dfc2c9..aa407b2 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -1652,6 +1652,13 @@ static int emac_poll_rx(void *param, int budget)
skb_put(skb, len);
push_packet:
+ if (skb->len < ETH_HLEN) {
+ dev_kfree_skb(skb);
+ printk(KERN_WARNING "%s: short packets dropped\n",
+ dev->ndev->name);
+ ++dev->estats.rx_dropped_stack;
+ goto next;
+ }
skb->dev = dev->ndev;
skb->protocol = eth_type_trans(skb, dev->ndev);
emac_rx_csum(dev, skb, ctrl);
--
1.5.6
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] ibm_newemac: Fixes entry of short packets
2008-06-23 12:55 [PATCH] ibm_newemac: Fixes entry of short packets Stefan Roese
@ 2008-06-23 23:20 ` Benjamin Herrenschmidt
2008-06-27 6:36 ` SathyaNarayanan
0 siblings, 1 reply; 4+ messages in thread
From: Benjamin Herrenschmidt @ 2008-06-23 23:20 UTC (permalink / raw)
To: Stefan Roese; +Cc: linuxppc-dev, Sathya Narayanan, netdev
On Mon, 2008-06-23 at 14:55 +0200, Stefan Roese wrote:
> From: Sathya Narayanan <sathyan@teamf1.com>
>
> Short packets has to be discarded by the driver. So this patch addresses the
> issue of discarding the short packets of size lesser then ethernet header
> size.
You are freeing the skb, why ? Shouldn't we just keep the skb in the
ring for further rx ?
> Signed-off-by: Sathya Narayanan <sathyan@teamf1.com>
> Signed-off-by: Stefan Roese <sr@denx.de>
> ---
> drivers/net/ibm_newemac/core.c | 7 +++++++
> 1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
> index 6dfc2c9..aa407b2 100644
> --- a/drivers/net/ibm_newemac/core.c
> +++ b/drivers/net/ibm_newemac/core.c
> @@ -1652,6 +1652,13 @@ static int emac_poll_rx(void *param, int budget)
>
> skb_put(skb, len);
> push_packet:
> + if (skb->len < ETH_HLEN) {
> + dev_kfree_skb(skb);
> + printk(KERN_WARNING "%s: short packets dropped\n",
> + dev->ndev->name);
> + ++dev->estats.rx_dropped_stack;
> + goto next;
> + }
> skb->dev = dev->ndev;
> skb->protocol = eth_type_trans(skb, dev->ndev);
> emac_rx_csum(dev, skb, ctrl);
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ibm_newemac: Fixes entry of short packets
2008-06-23 23:20 ` Benjamin Herrenschmidt
@ 2008-06-27 6:36 ` SathyaNarayanan
2008-06-27 8:58 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 4+ messages in thread
From: SathyaNarayanan @ 2008-06-27 6:36 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev, Stefan Roese, netdev
[-- Attachment #1: Type: text/plain, Size: 1888 bytes --]
Hi benh,
Please find my comments inline.
On Tue, Jun 24, 2008 at 4:50 AM, Benjamin Herrenschmidt <
benh@kernel.crashing.org> wrote:
> On Mon, 2008-06-23 at 14:55 +0200, Stefan Roese wrote:
> > From: Sathya Narayanan <sathyan@teamf1.com>
> >
> > Short packets has to be discarded by the driver. So this patch addresses
> the
> > issue of discarding the short packets of size lesser then ethernet header
> > size.
>
> You are freeing the skb, why ? Shouldn't we just keep the skb in the
> ring for further rx ?
Actually , short packets are not allowed to flow through the higher layers,
If any of the layer tried to use the extra room available may hit wit crash
.
Since it is a invalid packet it has to be dropped and freed in driver.
Actually if you see in code, the other invalid packets are also handelled
similar.
>
> > Signed-off-by: Sathya Narayanan <sathyan@teamf1.com>
> > Signed-off-by: Stefan Roese <sr@denx.de>
> > ---
> > drivers/net/ibm_newemac/core.c | 7 +++++++
> > 1 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/net/ibm_newemac/core.c
> b/drivers/net/ibm_newemac/core.c
> > index 6dfc2c9..aa407b2 100644
> > --- a/drivers/net/ibm_newemac/core.c
> > +++ b/drivers/net/ibm_newemac/core.c
> > @@ -1652,6 +1652,13 @@ static int emac_poll_rx(void *param, int budget)
> >
> > skb_put(skb, len);
> > push_packet:
> > + if (skb->len < ETH_HLEN) {
> > + dev_kfree_skb(skb);
> > + printk(KERN_WARNING "%s: short packets dropped\n",
> > + dev->ndev->name);
> > + ++dev->estats.rx_dropped_stack;
> > + goto next;
> > + }
> > skb->dev = dev->ndev;
> > skb->protocol = eth_type_trans(skb, dev->ndev);
> > emac_rx_csum(dev, skb, ctrl);
>
>
[-- Attachment #2: Type: text/html, Size: 3259 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ibm_newemac: Fixes entry of short packets
2008-06-27 6:36 ` SathyaNarayanan
@ 2008-06-27 8:58 ` Benjamin Herrenschmidt
0 siblings, 0 replies; 4+ messages in thread
From: Benjamin Herrenschmidt @ 2008-06-27 8:58 UTC (permalink / raw)
To: SathyaNarayanan; +Cc: linuxppc-dev, Stefan Roese, netdev
>
>
> Actually , short packets are not allowed to flow through the higher
> layers, If any of the layer tried to use the extra room available may
> hit wit crash .
> Since it is a invalid packet it has to be dropped and freed in driver.
> Actually if you see in code, the other invalid packets are also
> handelled similar.
My point is they should not. The rx skb should be kept in the ring for
further rx (ie, the data ignored and re-use the skb). A bit like we do
when we decide the packet is small enough to be copied to a new skb.
Ie. Move you test above the threshold test and recycle the skb.
We need to fix the usage of the dma operations in this driver anyway
and this will make it easier as we'll be able to avoid re-mapping an
skb we just recycle. (the current driver never unmaps which means it
can't be used with an iommu, which is a problem on some cell based
platforms).
Ben.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-06-27 8:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-23 12:55 [PATCH] ibm_newemac: Fixes entry of short packets Stefan Roese
2008-06-23 23:20 ` Benjamin Herrenschmidt
2008-06-27 6:36 ` SathyaNarayanan
2008-06-27 8:58 ` Benjamin Herrenschmidt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).