diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/if.h | 2 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/if.h b/include/linux/if.h index 3bc63e6a02f7..03489ca92ded 100644 --- a/include/linux/if.h +++ b/include/linux/if.h | |||
| @@ -76,6 +76,8 @@ | |||
| 76 | #define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */ | 76 | #define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */ |
| 77 | #define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch | 77 | #define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch |
| 78 | * datapath port */ | 78 | * datapath port */ |
| 79 | #define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing | ||
| 80 | * skbs on transmit */ | ||
| 79 | 81 | ||
| 80 | #define IF_GET_IFACE 0x0001 /* for querying only */ | 82 | #define IF_GET_IFACE 0x0001 /* for querying only */ |
| 81 | #define IF_GET_PROTO 0x0002 | 83 | #define IF_GET_PROTO 0x0002 |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 2ed0b6cf11c5..ddee79bb8f15 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -1132,7 +1132,7 @@ struct net_device { | |||
| 1132 | spinlock_t addr_list_lock; | 1132 | spinlock_t addr_list_lock; |
| 1133 | struct netdev_hw_addr_list uc; /* Unicast mac addresses */ | 1133 | struct netdev_hw_addr_list uc; /* Unicast mac addresses */ |
| 1134 | struct netdev_hw_addr_list mc; /* Multicast mac addresses */ | 1134 | struct netdev_hw_addr_list mc; /* Multicast mac addresses */ |
| 1135 | int uc_promisc; | 1135 | bool uc_promisc; |
| 1136 | unsigned int promiscuity; | 1136 | unsigned int promiscuity; |
| 1137 | unsigned int allmulti; | 1137 | unsigned int allmulti; |
| 1138 | 1138 | ||
| @@ -1679,9 +1679,12 @@ static inline int skb_gro_header_hard(struct sk_buff *skb, unsigned int hlen) | |||
| 1679 | static inline void *skb_gro_header_slow(struct sk_buff *skb, unsigned int hlen, | 1679 | static inline void *skb_gro_header_slow(struct sk_buff *skb, unsigned int hlen, |
| 1680 | unsigned int offset) | 1680 | unsigned int offset) |
| 1681 | { | 1681 | { |
| 1682 | if (!pskb_may_pull(skb, hlen)) | ||
| 1683 | return NULL; | ||
| 1684 | |||
| 1682 | NAPI_GRO_CB(skb)->frag0 = NULL; | 1685 | NAPI_GRO_CB(skb)->frag0 = NULL; |
| 1683 | NAPI_GRO_CB(skb)->frag0_len = 0; | 1686 | NAPI_GRO_CB(skb)->frag0_len = 0; |
| 1684 | return pskb_may_pull(skb, hlen) ? skb->data + offset : NULL; | 1687 | return skb->data + offset; |
| 1685 | } | 1688 | } |
| 1686 | 1689 | ||
| 1687 | static inline void *skb_gro_mac_header(struct sk_buff *skb) | 1690 | static inline void *skb_gro_mac_header(struct sk_buff *skb) |
