Skip to content

Commit a613f58

Browse files
santildavem330
authored andcommitted
ibmveth: Remove integer divide caused by modulus
Replace some modulus operators with an increment and compare to avoid an integer divide. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Santiago Leon <santil@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent a5d31e0 commit a613f58

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

drivers/net/ibmveth.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,9 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc
252252
}
253253

254254
free_index = pool->consumer_index;
255-
pool->consumer_index = (pool->consumer_index + 1) % pool->size;
255+
pool->consumer_index++;
256+
if (pool->consumer_index >= pool->size)
257+
pool->consumer_index = 0;
256258
index = pool->free_map[free_index];
257259

258260
ibmveth_assert(index != IBM_VETH_INVALID_MAP);
@@ -377,9 +379,10 @@ static void ibmveth_remove_buffer_from_pool(struct ibmveth_adapter *adapter, u64
377379
DMA_FROM_DEVICE);
378380

379381
free_index = adapter->rx_buff_pool[pool].producer_index;
380-
adapter->rx_buff_pool[pool].producer_index
381-
= (adapter->rx_buff_pool[pool].producer_index + 1)
382-
% adapter->rx_buff_pool[pool].size;
382+
adapter->rx_buff_pool[pool].producer_index++;
383+
if (adapter->rx_buff_pool[pool].producer_index >=
384+
adapter->rx_buff_pool[pool].size)
385+
adapter->rx_buff_pool[pool].producer_index = 0;
383386
adapter->rx_buff_pool[pool].free_map[free_index] = index;
384387

385388
mb();

0 commit comments

Comments
 (0)