Re: [PATCH 1/1] AX88179_178A: Add FLAG_HW_IPALIGN to determine whetherreserving NET_IP_ALIGN bytes for an SKB.

From: Freddy Xin
Date: Mon Dec 16 2013 - 02:23:53 EST



On 2013å12æ13æ 18:36, David Laight wrote:
From: freddy@xxxxxxxxxxx
...
- skb = __netdev_alloc_skb_ip_align(dev->net, size, flags);
+ if (dev->driver_info->flags & FLAG_HW_IPALIGN)
+ skb = __netdev_alloc_skb(dev->net, size, flags);
+ else
+ skb = __netdev_alloc_skb_ip_align(dev->net, size, flags);
Given the definition:
static inline struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
unsigned int length, gfp_t gfp)
{
struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp);

if (NET_IP_ALIGN && skb)
skb_reserve(skb, NET_IP_ALIGN);
return skb;
}

It really ought to be possible to code that without an extra conditional.

David




The AX88179_178A driver do need to know the value of NET_IP_ALIGN
to determine whether enabling the feature that makes IP header align
on a dword-aligned address, but according to the comments from David
Miller, I need to consider all situations, not just for the case that
NET_IP_ALIGN is zero, so the condition added in rx_submit is just used to
determine whether reserving NET_IP_ALIGN bytes for each SKB.

Freddy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/