summaryrefslogtreecommitdiff
path: root/net/8021q/vlan.h
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2008-07-08 03:23:36 -0700
committerDavid S. Miller <davem@davemloft.net>2008-07-08 03:23:36 -0700
commit7750f403cbe56971336d575b354365190b4e3227 (patch)
treebc8a65b0dd0d5cc3faac943f7e3df0c6dfedeaf6 /net/8021q/vlan.h
parent75b8846acd11ad3fc736d4df3413fe946bbf367c (diff)
vlan: uninline __vlan_hwaccel_rx
The function is huge and included at least once in every VLAN acceleration capable driver. Uninline it; to avoid having drivers depend on the VLAN module, the function is always built in statically when VLAN is enabled. With all VLAN acceleration capable drivers that build on x86_64 enabled, this results in: text data bss dec hex filename 6515227 854044 343968 7713239 75b1d7 vmlinux.inlined 6505637 854044 343968 7703649 758c61 vmlinux.uninlined ---------------------------------------------------------- -9590 Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q/vlan.h')
-rw-r--r--net/8021q/vlan.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/8021q/vlan.h b/net/8021q/vlan.h
index 097b2e04c928..7cc1a97c42fc 100644
--- a/net/8021q/vlan.h
+++ b/net/8021q/vlan.h
@@ -37,6 +37,14 @@ void vlan_setup(struct net_device *dev);
int register_vlan_dev(struct net_device *dev);
void unregister_vlan_dev(struct net_device *dev);
+static inline u32 vlan_get_ingress_priority(struct net_device *dev,
+ unsigned short vlan_tag)
+{
+ struct vlan_dev_info *vip = vlan_dev_info(dev);
+
+ return vip->ingress_priority_map[(vlan_tag >> 13) & 0x7];
+}
+
#ifdef CONFIG_VLAN_8021Q_GVRP
extern int vlan_gvrp_request_join(const struct net_device *dev);
extern void vlan_gvrp_request_leave(const struct net_device *dev);