Skip to content

Commit

Permalink
[VLAN]: Avoid expensive divides
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eric Dumazet authored and David S. Miller committed Jan 28, 2008
1 parent 4cec72c commit f0b5a0d
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions include/linux/if_vlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,16 @@ struct vlan_group {
struct rcu_head rcu;
};

static inline struct net_device *vlan_group_get_device(struct vlan_group *vg, int vlan_id)
static inline struct net_device *vlan_group_get_device(struct vlan_group *vg,
unsigned int vlan_id)
{
struct net_device **array;
array = vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN];
return array[vlan_id % VLAN_GROUP_ARRAY_PART_LEN];
}

static inline void vlan_group_set_device(struct vlan_group *vg, int vlan_id,
static inline void vlan_group_set_device(struct vlan_group *vg,
unsigned int vlan_id,
struct net_device *dev)
{
struct net_device **array;
Expand Down

0 comments on commit f0b5a0d

Please sign in to comment.