net: Remove all uses of LL_ALLOCATED_SPACE
net: Remove all uses of LL_ALLOCATED_SPACE The macro LL_ALLOCATED_SPACE was ill-conceived. It applies the alignment to the sum of needed_headroom and needed_tailroom. As the amount that is then reserved for head room is needed_headroom with alignment, this means that the tail room left may be too small. This patch replaces all uses of LL_ALLOCATED_SPACE with the macro LL_RESERVED_SPACE and direct reference to needed_tailroom. This also fixes the problem with needed_headroom changing between allocating the skb and reserving the head room. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a7ae199224
commit
ae641949df
@@ -422,6 +422,7 @@ static void arp_reply(struct sk_buff *skb)
|
||||
struct sk_buff *send_skb;
|
||||
struct netpoll *np, *tmp;
|
||||
unsigned long flags;
|
||||
int hlen, tlen;
|
||||
int hits = 0;
|
||||
|
||||
if (list_empty(&npinfo->rx_np))
|
||||
@@ -479,8 +480,9 @@ static void arp_reply(struct sk_buff *skb)
|
||||
if (tip != np->local_ip)
|
||||
continue;
|
||||
|
||||
send_skb = find_skb(np, size + LL_ALLOCATED_SPACE(np->dev),
|
||||
LL_RESERVED_SPACE(np->dev));
|
||||
hlen = LL_RESERVED_SPACE(np->dev);
|
||||
tlen = np->dev->needed_tailroom;
|
||||
send_skb = find_skb(np, size + hlen + tlen, hlen);
|
||||
if (!send_skb)
|
||||
continue;
|
||||
|
||||
|
Reference in New Issue
Block a user