* [PATCH 001/001] smsc95xx: Fix hard_header_len
@ 2012-08-15 19:48 JamesBetts
2012-08-16 9:57 ` Steve Glendinning
0 siblings, 1 reply; 7+ messages in thread
From: JamesBetts @ 2012-08-15 19:48 UTC (permalink / raw)
To: netdev; +Cc: steve, JamesBetts
This device may require up-to 12 bytes of headroom. Assign the needed_headroom
but stop lying about hard_header_len which is used in other places throughout
the kernel.
Without this patch it is not possible to use "IFB + tc filter ... action ...
dev ifb0" as per
http://www.linuxfoundation.org/collaborate/workgroups/networking/ifb.
Tested using Raspberry Pi as a router with trafficshaping and IFB.
---
drivers/net/usb/smsc95xx.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index 0aee6c0..02293dd 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1071,8 +1071,8 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
dev->net->netdev_ops = &smsc95xx_netdev_ops;
dev->net->ethtool_ops = &smsc95xx_ethtool_ops;
dev->net->flags |= IFF_MULTICAST;
- dev->net->hard_header_len += SMSC95XX_TX_OVERHEAD_CSUM;
- dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
+ dev->net->needed_headroom = SMSC95XX_TX_OVERHEAD_CSUM;
+ dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len + dev->net->needed_headroom;
return 0;
}
--
1.7.4.1.433.gcd306
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 001/001] smsc95xx: Fix hard_header_len
2012-08-15 19:48 [PATCH 001/001] smsc95xx: Fix hard_header_len JamesBetts
@ 2012-08-16 9:57 ` Steve Glendinning
2012-08-16 17:59 ` Ben Hutchings
0 siblings, 1 reply; 7+ messages in thread
From: Steve Glendinning @ 2012-08-16 9:57 UTC (permalink / raw)
To: JamesBetts; +Cc: netdev, David Miller
Hi James,
Thanks for spotting this, I don't think I've ever tested this device with IMQ.
> - dev->net->hard_header_len += SMSC95XX_TX_OVERHEAD_CSUM;
> - dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
> + dev->net->needed_headroom = SMSC95XX_TX_OVERHEAD_CSUM;
> + dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len +
> dev->net->needed_headroom;
I'm unsure what we *should* be setting hard_header_len and
needed_headroom to. David?
Thanks,
--
Steve Glendinning
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 001/001] smsc95xx: Fix hard_header_len
2012-08-16 9:57 ` Steve Glendinning
@ 2012-08-16 17:59 ` Ben Hutchings
2012-08-17 8:35 ` Steve Glendinning
0 siblings, 1 reply; 7+ messages in thread
From: Ben Hutchings @ 2012-08-16 17:59 UTC (permalink / raw)
To: Steve Glendinning; +Cc: JamesBetts, netdev, David Miller
On Thu, 2012-08-16 at 10:57 +0100, Steve Glendinning wrote:
> Hi James,
>
> Thanks for spotting this, I don't think I've ever tested this device with IMQ.
>
> > - dev->net->hard_header_len += SMSC95XX_TX_OVERHEAD_CSUM;
> > - dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
> > + dev->net->needed_headroom = SMSC95XX_TX_OVERHEAD_CSUM;
> > + dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len +
> > dev->net->needed_headroom;
>
> I'm unsure what we *should* be setting hard_header_len and
> needed_headroom to. David?
hard_header_len is set to ETH_HLEN by alloc_etherdev() (in the
ether_setup() callback). Any extra headroom you want before the
Ethernet header should indeed be specified in needed_headroom.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 001/001] smsc95xx: Fix hard_header_len
2012-08-16 17:59 ` Ben Hutchings
@ 2012-08-17 8:35 ` Steve Glendinning
2012-08-20 9:19 ` David Miller
0 siblings, 1 reply; 7+ messages in thread
From: Steve Glendinning @ 2012-08-17 8:35 UTC (permalink / raw)
To: Ben Hutchings; +Cc: JamesBetts, netdev, David Miller
> hard_header_len is set to ETH_HLEN by alloc_etherdev() (in the
> ether_setup() callback). Any extra headroom you want before the
> Ethernet header should indeed be specified in needed_headroom.
Thanks Ben, looks like this patch is doing it the right way then.
Acked-By: Steve Glendinning <steve.glendinning@shawell.net>
--
Steve Glendinning
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 001/001] smsc95xx: Fix hard_header_len
2012-08-17 8:35 ` Steve Glendinning
@ 2012-08-20 9:19 ` David Miller
2012-08-21 6:33 ` James Betts
0 siblings, 1 reply; 7+ messages in thread
From: David Miller @ 2012-08-20 9:19 UTC (permalink / raw)
To: steve; +Cc: bhutchings, jimbob.betts, netdev
From: Steve Glendinning <steve@shawell.net>
Date: Fri, 17 Aug 2012 09:35:04 +0100
>> hard_header_len is set to ETH_HLEN by alloc_etherdev() (in the
>> ether_setup() callback). Any extra headroom you want before the
>> Ethernet header should indeed be specified in needed_headroom.
>
> Thanks Ben, looks like this patch is doing it the right way then.
>
> Acked-By: Steve Glendinning <steve.glendinning@shawell.net>
This patch needs to be submitted with a proper signoff.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 001/001] smsc95xx: Fix hard_header_len
2012-08-20 9:19 ` David Miller
@ 2012-08-21 6:33 ` James Betts
2012-08-21 6:58 ` David Miller
0 siblings, 1 reply; 7+ messages in thread
From: James Betts @ 2012-08-21 6:33 UTC (permalink / raw)
To: David Miller; +Cc: steve, bhutchings, netdev
>> Acked-By: Steve Glendinning <steve.glendinning@shawell.net>
>
> This patch needs to be submitted with a proper signoff.
I think Steve has been in "the delivery path" so he could sign it off,
I took his Acked-By as saying the patch was okay. In case it helps ...
Signed-off-by: James Betts <jimbob.betts@googlemail.com>
Thanks.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 001/001] smsc95xx: Fix hard_header_len
2012-08-21 6:33 ` James Betts
@ 2012-08-21 6:58 ` David Miller
0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2012-08-21 6:58 UTC (permalink / raw)
To: jimbob.betts; +Cc: steve, bhutchings, netdev
From: James Betts <jimbob.betts@googlemail.com>
Date: Tue, 21 Aug 2012 06:33:07 +0000
>>> Acked-By: Steve Glendinning <steve.glendinning@shawell.net>
>>
>> This patch needs to be submitted with a proper signoff.
>
> I think Steve has been in "the delivery path" so he could sign it off,
> I took his Acked-By as saying the patch was okay. In case it helps ...
>
> Signed-off-by: James Betts <jimbob.betts@googlemail.com>
The original author needs to properly freshly submit the patch
with their own signoff included in the commit message.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-08-21 6:58 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-15 19:48 [PATCH 001/001] smsc95xx: Fix hard_header_len JamesBetts
2012-08-16 9:57 ` Steve Glendinning
2012-08-16 17:59 ` Ben Hutchings
2012-08-17 8:35 ` Steve Glendinning
2012-08-20 9:19 ` David Miller
2012-08-21 6:33 ` James Betts
2012-08-21 6:58 ` David Miller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.