mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 01:49:36 +00:00
[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>
This commit is contained in:
parent
4cec72c890
commit
f0b5a0dcf1
1 changed files with 4 additions and 2 deletions
|
@ -81,14 +81,16 @@ struct vlan_group {
|
||||||
struct rcu_head rcu;
|
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;
|
struct net_device **array;
|
||||||
array = vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN];
|
array = vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN];
|
||||||
return array[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 *dev)
|
||||||
{
|
{
|
||||||
struct net_device **array;
|
struct net_device **array;
|
||||||
|
|
Loading…
Reference in a new issue