From patchwork Mon Feb 25 18:22:26 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 222996 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 DB7F52C0092 for ; Tue, 26 Feb 2013 05:22:37 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758639Ab3BYSWe (ORCPT ); Mon, 25 Feb 2013 13:22:34 -0500 Received: from mail-ee0-f46.google.com ([74.125.83.46]:56200 "EHLO mail-ee0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754529Ab3BYSWd (ORCPT ); Mon, 25 Feb 2013 13:22:33 -0500 Received: by mail-ee0-f46.google.com with SMTP id e49so1548711eek.5 for ; Mon, 25 Feb 2013 10:22:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; bh=sOAWJUZRVqIxQCUgvpvQ9vrOJUOSq9PFHpXTWBnqdpQ=; b=a3CzE+h3qDKa4Bq3gtMJT48ifhP4x/m239isJ/FSUwIHHA7xU2YUVTBB7m2Yp/Qfln g7S+XXRMQRARS+CAnGUrWGu0ZmK1j0cv5Xq1Lg42VjJRT+HJWot0MURH9lI9v0Ih/n1X LnE7XI6XAJr2h2DCdJQlBQnIhBPFTkx97EcXHT6xfpKihps6EaPhMui3uv56Gae1Emra B2vQmvP74Naos6jHimiq9Z4zqvf6T4zp3eRs8hYmTSf02QPYHPIv3FDM6PxD0KobRntv NrZIuh2FM+VpHC2J+NxrSetaBqP3S3CrTfvZYjer/++fhoex5U4n28uGpYBLKuvARvKG Pqiw== X-Received: by 10.14.220.135 with SMTP id o7mr41820945eep.3.1361816551985; Mon, 25 Feb 2013 10:22:31 -0800 (PST) Received: from linux-sonyvaio.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by mx.google.com with ESMTPS id d47sm19693602eem.9.2013.02.25.10.22.30 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 25 Feb 2013 10:22:30 -0800 (PST) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: netdev@vger.kernel.org, "David S. Miller" Cc: Tijs Van Buggenhout , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH][FIX] bgmac: fix indexing of 2nd level loops Date: Mon, 25 Feb 2013 19:22:26 +0100 Message-Id: <1361816546-10171-1-git-send-email-zajec5@gmail.com> X-Mailer: git-send-email 1.7.10.4 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We were using the same variable for iterating two nested loops. Reported-by: Tijs Van Buggenhout Signed-off-by: Rafał Miłecki --- Luckily it didn't case any real errors (thanks to the loops limits) but I think it's ugly enough to make it a "FIX" anyway. --- drivers/net/ethernet/broadcom/bgmac.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index 67a03d5..3f62bef 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -436,6 +436,8 @@ static int bgmac_dma_alloc(struct bgmac *bgmac) } for (i = 0; i < BGMAC_MAX_RX_RINGS; i++) { + int j; + ring = &bgmac->rx_ring[i]; ring->num_slots = BGMAC_RX_RING_SLOTS; ring->mmio_base = ring_base[i]; @@ -458,8 +460,8 @@ static int bgmac_dma_alloc(struct bgmac *bgmac) bgmac_warn(bgmac, "DMA address using 0xC0000000 bit(s), it may need translation trick\n"); /* Alloc RX slots */ - for (i = 0; i < ring->num_slots; i++) { - err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[i]); + for (j = 0; j < ring->num_slots; j++) { + err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[j]); if (err) { bgmac_err(bgmac, "Can't allocate skb for slot in RX ring\n"); goto err_dma_free; @@ -496,6 +498,8 @@ static void bgmac_dma_init(struct bgmac *bgmac) } for (i = 0; i < BGMAC_MAX_RX_RINGS; i++) { + int j; + ring = &bgmac->rx_ring[i]; /* We don't implement unaligned addressing, so enable first */ @@ -505,11 +509,11 @@ static void bgmac_dma_init(struct bgmac *bgmac) bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGHI, upper_32_bits(ring->dma_base)); - for (i = 0, dma_desc = ring->cpu_base; i < ring->num_slots; - i++, dma_desc++) { + for (j = 0, dma_desc = ring->cpu_base; j < ring->num_slots; + j++, dma_desc++) { ctl0 = ctl1 = 0; - if (i == ring->num_slots - 1) + if (j == ring->num_slots - 1) ctl0 |= BGMAC_DESC_CTL0_EOT; ctl1 |= BGMAC_RX_BUF_SIZE & BGMAC_DESC_CTL1_LEN; /* Is there any BGMAC device that requires extension? */ @@ -517,8 +521,8 @@ static void bgmac_dma_init(struct bgmac *bgmac) * B43_DMA64_DCTL1_ADDREXT_MASK; */ - dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[i].dma_addr)); - dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[i].dma_addr)); + dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[j].dma_addr)); + dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[j].dma_addr)); dma_desc->ctl0 = cpu_to_le32(ctl0); dma_desc->ctl1 = cpu_to_le32(ctl1); }