From patchwork Mon Aug 23 00:09:31 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Blanchard X-Patchwork-Id: 62399 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 75F0AB70AA for ; Mon, 23 Aug 2010 10:27:13 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751449Ab0HWA1D (ORCPT ); Sun, 22 Aug 2010 20:27:03 -0400 Received: from ozlabs.org ([203.10.76.45]:35028 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751249Ab0HWA1C (ORCPT ); Sun, 22 Aug 2010 20:27:02 -0400 Received: by ozlabs.org (Postfix, from userid 1010) id 6281BB70AE; Mon, 23 Aug 2010 10:27:01 +1000 (EST) Message-Id: <20100823001238.380771427@samba.org> User-Agent: quilt/0.48-1 Date: Mon, 23 Aug 2010 10:09:31 +1000 From: Anton Blanchard To: brking@linux.vnet.ibm.com, santil@linux.vnet.ibm.com Cc: netdev@vger.kernel.org Subject: [patch 01/20] ibmveth: Remove integer divide caused by modulus References: <20100823000930.546065833@samba.org> Content-Disposition: inline; filename=veth_modulus Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Replace some modulus operators with an increment and compare to avoid an integer divide. Signed-off-by: Anton Blanchard --- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: net-next-2.6/drivers/net/ibmveth.c =================================================================== --- net-next-2.6.orig/drivers/net/ibmveth.c 2010-08-23 08:52:21.104406611 +1000 +++ net-next-2.6/drivers/net/ibmveth.c 2010-08-23 08:52:26.774004158 +1000 @@ -252,7 +252,9 @@ static void ibmveth_replenish_buffer_poo } free_index = pool->consumer_index; - pool->consumer_index = (pool->consumer_index + 1) % pool->size; + pool->consumer_index++; + if (pool->consumer_index >= pool->size) + pool->consumer_index = 0; index = pool->free_map[free_index]; ibmveth_assert(index != IBM_VETH_INVALID_MAP); @@ -377,9 +379,10 @@ static void ibmveth_remove_buffer_from_p DMA_FROM_DEVICE); free_index = adapter->rx_buff_pool[pool].producer_index; - adapter->rx_buff_pool[pool].producer_index - = (adapter->rx_buff_pool[pool].producer_index + 1) - % adapter->rx_buff_pool[pool].size; + adapter->rx_buff_pool[pool].producer_index++; + if (adapter->rx_buff_pool[pool].producer_index >= + adapter->rx_buff_pool[pool].size) + adapter->rx_buff_pool[pool].producer_index = 0; adapter->rx_buff_pool[pool].free_map[free_index] = index; mb();