]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
farsync: Fix confusion about DMA address and buffer offset types
authorBen Hutchings <ben@decadent.org.uk>
Sun, 8 Jun 2014 22:49:34 +0000 (23:49 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Jun 2014 07:45:29 +0000 (00:45 -0700)
Use dma_addr_t for DMA address parameters and u32 for shared memory
offset parameters.

Do not assume that dma_addr_t is the same as unsigned long; it will
not be in PAE configurations.  Truncate DMA addresses to 32 bits when
printing them.  This is OK because the DMA mask for this device is
32-bit (per default).

Also rename the DMA address parameters from 'skb' to 'dma'.

Compile-tested only.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/farsync.c

index 02f6d1cebc1541f58e8f8489b14f20fc8cea70f2..93ace042d0aa71b007ec80ab638a5cdbcaa790dd 100644 (file)
@@ -882,20 +882,18 @@ fst_rx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
  *      Receive a frame through the DMA
  */
 static inline void
-fst_rx_dma(struct fst_card_info *card, dma_addr_t skb,
-          dma_addr_t mem, int len)
+fst_rx_dma(struct fst_card_info *card, dma_addr_t dma, u32 mem, int len)
 {
        /*
         * This routine will setup the DMA and start it
         */
 
-       dbg(DBG_RX, "In fst_rx_dma %lx %lx %d\n",
-           (unsigned long) skb, (unsigned long) mem, len);
+       dbg(DBG_RX, "In fst_rx_dma %x %x %d\n", (u32)dma, mem, len);
        if (card->dmarx_in_progress) {
                dbg(DBG_ASS, "In fst_rx_dma while dma in progress\n");
        }
 
-       outl(skb, card->pci_conf + DMAPADR0);   /* Copy to here */
+       outl(dma, card->pci_conf + DMAPADR0);   /* Copy to here */
        outl(mem, card->pci_conf + DMALADR0);   /* from here */
        outl(len, card->pci_conf + DMASIZ0);    /* for this length */
        outl(0x00000000c, card->pci_conf + DMADPR0);    /* In this direction */
@@ -911,20 +909,19 @@ fst_rx_dma(struct fst_card_info *card, dma_addr_t skb,
  *      Send a frame through the DMA
  */
 static inline void
-fst_tx_dma(struct fst_card_info *card, unsigned char *skb,
-          unsigned char *mem, int len)
+fst_tx_dma(struct fst_card_info *card, dma_addr_t dma, u32 mem, int len)
 {
        /*
         * This routine will setup the DMA and start it.
         */
 
-       dbg(DBG_TX, "In fst_tx_dma %p %p %d\n", skb, mem, len);
+       dbg(DBG_TX, "In fst_tx_dma %x %x %d\n", (u32)dma, mem, len);
        if (card->dmatx_in_progress) {
                dbg(DBG_ASS, "In fst_tx_dma while dma in progress\n");
        }
 
-       outl((unsigned long) skb, card->pci_conf + DMAPADR1);   /* Copy from here */
-       outl((unsigned long) mem, card->pci_conf + DMALADR1);   /* to here */
+       outl(dma, card->pci_conf + DMAPADR1);   /* Copy from here */
+       outl(mem, card->pci_conf + DMALADR1);   /* to here */
        outl(len, card->pci_conf + DMASIZ1);    /* for this length */
        outl(0x000000004, card->pci_conf + DMADPR1);    /* In this direction */
 
@@ -1401,9 +1398,7 @@ do_bottom_half_tx(struct fst_card_info *card)
                                        card->dma_len_tx = skb->len;
                                        card->dma_txpos = port->txpos;
                                        fst_tx_dma(card,
-                                                  (char *) card->
-                                                  tx_dma_handle_card,
-                                                  (char *)
+                                                  card->tx_dma_handle_card,
                                                   BUF_OFFSET(txBuffer[pi]
                                                              [port->txpos][0]),
                                                   skb->len);