Re: [PATCH net-next v2 4/7] net: packet: use skb->dev as storage for skb orig len instead of skb->cb[]
From: David Miller <davem@davemloft.net>
Date: 2015-02-28 20:08:30
Also in:
linux-bluetooth
From: David Miller <davem@davemloft.net>
Date: 2015-02-28 20:08:30
Also in:
linux-bluetooth
From: Eyal Birger <redacted> Date: Sat, 28 Feb 2015 21:39:34 +0200
On Sat, Feb 28, 2015 at 9:21 PM, David Miller [off-list ref] wrote:quoted
From: Eyal Birger <redacted> Date: Thu, 26 Feb 2015 21:07:01 +0200quoted
As part of an effort to move skb->dropcount to skb->cb[], 4 bytes of additional room are needed in skb->cb[] in packet sockets. Store the skb original length in skb->dev instead of skb->cb[] for this purpose. Signed-off-by: Eyal Birger <redacted>I'm a little confused, why is this even needed? packet_skb_cb is 24 bytes by my calculations, which is much smaller than the cb[] size which is 48 bytes.Note the BUILD_BUG_ON in packet_rcv(). packet_skb_cb may contain an address as large as MAX_ADDR_LEN (32) Therefore the required space is sizeof(packet_skb_cb) + MAX_ADDR_LEN - 8 which is 48 bytes before this change.
So let's take a step back. What link layer we support has 32-byte hardware addresses? If the answer is lower than 32, we should use that value instead.