diff options
author | David S. Miller <davem@davemloft.net> | 2014-05-24 00:32:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-24 00:32:30 -0400 |
commit | 54e5c4def0614ab540fbdf68e45342a4af141702 (patch) | |
tree | 95a2f61c72336932e83d9e4180cd9739106d624b /include/linux/if_vlan.h | |
parent | be65de7174123e02477bd488db1a657caf0f9947 (diff) | |
parent | 1ee1ceafb572f1a925809168267a7962a4289de8 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/bonding/bond_alb.c
drivers/net/ethernet/altera/altera_msgdma.c
drivers/net/ethernet/altera/altera_sgdma.c
net/ipv6/xfrm6_output.c
Several cases of overlapping changes.
The xfrm6_output.c has a bug fix which overlaps the renaming
of skb->local_df to skb->ignore_df.
In the Altera TSE driver cases, the register access cleanups
in net-next overlapped with bug fixes done in net.
Similarly a bug fix to send ALB packets in the bonding driver using
the right source address overlaps with cleanups in net-next.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/if_vlan.h')
-rw-r--r-- | include/linux/if_vlan.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 8c0fb7f3a9a5..4967916fe4ac 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
@@ -73,7 +73,7 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) | |||
73 | /* found in socket.c */ | 73 | /* found in socket.c */ |
74 | extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); | 74 | extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); |
75 | 75 | ||
76 | static inline int is_vlan_dev(struct net_device *dev) | 76 | static inline bool is_vlan_dev(struct net_device *dev) |
77 | { | 77 | { |
78 | return dev->priv_flags & IFF_802_1Q_VLAN; | 78 | return dev->priv_flags & IFF_802_1Q_VLAN; |
79 | } | 79 | } |
@@ -159,6 +159,7 @@ struct vlan_dev_priv { | |||
159 | #ifdef CONFIG_NET_POLL_CONTROLLER | 159 | #ifdef CONFIG_NET_POLL_CONTROLLER |
160 | struct netpoll *netpoll; | 160 | struct netpoll *netpoll; |
161 | #endif | 161 | #endif |
162 | unsigned int nest_level; | ||
162 | }; | 163 | }; |
163 | 164 | ||
164 | static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) | 165 | static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) |
@@ -197,6 +198,12 @@ extern void vlan_vids_del_by_dev(struct net_device *dev, | |||
197 | const struct net_device *by_dev); | 198 | const struct net_device *by_dev); |
198 | 199 | ||
199 | extern bool vlan_uses_dev(const struct net_device *dev); | 200 | extern bool vlan_uses_dev(const struct net_device *dev); |
201 | |||
202 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
203 | { | ||
204 | BUG_ON(!is_vlan_dev(dev)); | ||
205 | return vlan_dev_priv(dev)->nest_level; | ||
206 | } | ||
200 | #else | 207 | #else |
201 | static inline struct net_device * | 208 | static inline struct net_device * |
202 | __vlan_find_dev_deep_rcu(struct net_device *real_dev, | 209 | __vlan_find_dev_deep_rcu(struct net_device *real_dev, |
@@ -263,6 +270,11 @@ static inline bool vlan_uses_dev(const struct net_device *dev) | |||
263 | { | 270 | { |
264 | return false; | 271 | return false; |
265 | } | 272 | } |
273 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
274 | { | ||
275 | BUG(); | ||
276 | return 0; | ||
277 | } | ||
266 | #endif | 278 | #endif |
267 | 279 | ||
268 | static inline bool vlan_hw_offload_capable(netdev_features_t features, | 280 | static inline bool vlan_hw_offload_capable(netdev_features_t features, |
@@ -483,4 +495,5 @@ static inline void vlan_set_encap_proto(struct sk_buff *skb, | |||
483 | */ | 495 | */ |
484 | skb->protocol = htons(ETH_P_802_2); | 496 | skb->protocol = htons(ETH_P_802_2); |
485 | } | 497 | } |
498 | |||
486 | #endif /* !(_LINUX_IF_VLAN_H_) */ | 499 | #endif /* !(_LINUX_IF_VLAN_H_) */ |