mirror of
git://git.code.sf.net/p/xtables-addons/xtables-addons
synced 2025-09-08 13:44:56 +02:00
TEE: reenable header_ops check
This commit is contained in:
@@ -85,6 +85,15 @@ static bool tee_routing(struct sk_buff *skb,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool dev_hh_avail(const struct net_device *dev)
|
||||||
|
{
|
||||||
|
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 23)
|
||||||
|
return dev->hard_header != NULL;
|
||||||
|
#else
|
||||||
|
return dev->header_ops != NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stolen from ip_finish_output2
|
* Stolen from ip_finish_output2
|
||||||
* PRE : skb->dev is set to the device we are leaving by
|
* PRE : skb->dev is set to the device we are leaving by
|
||||||
@@ -99,8 +108,7 @@ static void tee_ip_direct_send(struct sk_buff *skb)
|
|||||||
unsigned int hh_len = LL_RESERVED_SPACE(dev);
|
unsigned int hh_len = LL_RESERVED_SPACE(dev);
|
||||||
|
|
||||||
/* Be paranoid, rather than too clever. */
|
/* Be paranoid, rather than too clever. */
|
||||||
if (unlikely(skb_headroom(skb) < hh_len)) {
|
if (unlikely(skb_headroom(skb) < hh_len) && dev_hh_avail(dev)) {
|
||||||
/* if (dev->header_ops != NULL) */
|
|
||||||
struct sk_buff *skb2;
|
struct sk_buff *skb2;
|
||||||
|
|
||||||
skb2 = skb_realloc_headroom(skb, LL_RESERVED_SPACE(dev));
|
skb2 = skb_realloc_headroom(skb, LL_RESERVED_SPACE(dev));
|
||||||
|
Reference in New Issue
Block a user