All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.