Received: with ECARTIS (v1.0.0; list netdev); Tue, 06 Jul 2004 03:52:20 -0700 (PDT) Received: from mail.lst.de (verein.lst.de [212.34.189.10]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i66AqHgi008181 for ; Tue, 6 Jul 2004 03:52:18 -0700 Received: from verein.lst.de (localhost [127.0.0.1]) by mail.lst.de (8.12.3/8.12.3/Debian-6.6) with ESMTP id i66AqGQc014745 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Tue, 6 Jul 2004 12:52:16 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id i66AqFfw014743; Tue, 6 Jul 2004 12:52:15 +0200 Date: Tue, 6 Jul 2004 12:52:15 +0200 From: Christoph Hellwig To: jgarzik@pobox.com Cc: netdev@oss.sgi.com Subject: [PATCH] fix compiler warnings in mv64340_eth Message-ID: <20040706105215.GA14731@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-archive-position: 6652 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: hch@lst.de Precedence: bulk X-list: netdev Content-Length: 2093 Lines: 56 The driver was trying to do pointer arithmetic on integers but forgot half of the casts.. Let's just do normal integer arithmetics instead. --- drivers/net/mv64340_eth.c~ 2004-07-06 14:26:47.163242160 +0200 +++ drivers/net/mv64340_eth.c 2004-07-06 14:48:31.053020784 +0200 @@ -752,9 +752,8 @@ p_rx_desc[i].byte_cnt = 0x0000; p_rx_desc[i].cmd_sts = ETH_BUFFER_OWNED_BY_DMA | ETH_RX_ENABLE_INTERRUPT; - p_rx_desc[i].next_desc_ptr = - (struct eth_rx_desc *) mp->rx_desc_dma + - (i + 1) % rx_desc_num; + p_rx_desc[i].next_desc_ptr = mp->rx_desc_dma + + ((i + 1) % rx_desc_num) * sizeof(struct eth_rx_desc); p_rx_desc[i].buf_ptr = buffer_addr; mp->rx_skb[i] = NULL; @@ -818,9 +817,8 @@ p_tx_desc[i].byte_cnt = 0x0000; p_tx_desc[i].l4i_chk = 0x0000; p_tx_desc[i].cmd_sts = 0x00000000; - p_tx_desc[i].next_desc_ptr = - (struct eth_tx_desc *) mp->tx_desc_dma + - (i + 1) % tx_desc_num; + p_tx_desc[i].next_desc_ptr = mp->tx_desc_dma + + ((i + 1) % tx_desc_num) * sizeof(struct eth_tx_desc); p_tx_desc[i].buf_ptr = 0x00000000; mp->tx_skb[i] = NULL; } @@ -2329,8 +2349,8 @@ first_descriptor->cmd_sts = command_status; first_descriptor->byte_cnt = p_pkt_info->byte_cnt; first_descriptor->buf_ptr = p_pkt_info->buf_ptr; - first_descriptor->next_desc_ptr = - (struct eth_tx_desc *) mp->tx_desc_dma + tx_next_desc; + first_descriptor->next_desc_ptr = mp->tx_desc_dma + + tx_next_desc * sizeof(struct eth_tx_desc); wmb(); } else { tx_first_desc = mp->tx_first_desc_q; @@ -2343,8 +2363,8 @@ current_descriptor->next_desc_ptr = 0x00000000; else { command_status |= ETH_BUFFER_OWNED_BY_DMA; - current_descriptor->next_desc_ptr = - (struct eth_tx_desc *) mp->tx_desc_dma + tx_next_desc; + current_descriptor->next_desc_ptr = mp->tx_desc_dma + + tx_next_desc * sizeof(struct eth_tx_desc); } }