diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2008-01-09 02:54:43 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:01:06 -0500 |
commit | f0b5a0dcf125ce43855961ef4f965a91112bea23 (patch) | |
tree | bf8f14b2e7d7614a26a523929a515f1ee2052222 | |
parent | 4cec72c890d3a465eed08c24a4a2bfe25650318f (diff) |
[VLAN]: Avoid expensive divides
We can avoid divides (as seen with CONFIG_CC_OPTIMIZE_FOR_SIZE=y on
x86) changing vlan_group_get_device()/vlan_group_set_device() id
parameter from signed to unsigned.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/if_vlan.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 976d4b1067d1..4562105fdb2b 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
@@ -81,14 +81,16 @@ struct vlan_group { | |||
81 | struct rcu_head rcu; | 81 | struct rcu_head rcu; |
82 | }; | 82 | }; |
83 | 83 | ||
84 | static inline struct net_device *vlan_group_get_device(struct vlan_group *vg, int vlan_id) | 84 | static inline struct net_device *vlan_group_get_device(struct vlan_group *vg, |
85 | unsigned int vlan_id) | ||
85 | { | 86 | { |
86 | struct net_device **array; | 87 | struct net_device **array; |
87 | array = vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN]; | 88 | array = vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN]; |
88 | return array[vlan_id % VLAN_GROUP_ARRAY_PART_LEN]; | 89 | return array[vlan_id % VLAN_GROUP_ARRAY_PART_LEN]; |
89 | } | 90 | } |
90 | 91 | ||
91 | static inline void vlan_group_set_device(struct vlan_group *vg, int vlan_id, | 92 | static inline void vlan_group_set_device(struct vlan_group *vg, |
93 | unsigned int vlan_id, | ||
92 | struct net_device *dev) | 94 | struct net_device *dev) |
93 | { | 95 | { |
94 | struct net_device **array; | 96 | struct net_device **array; |