From: Ben Hutchings <ben@decadent.org.uk>
To: Kevin Curtis <kevin.curtis@farsite.co.uk>
Cc: LKML <linux-kernel@vger.kernel.org>, netdev <netdev@vger.kernel.org>
Subject: [PATCH 2/8] farsync: Fix confusion about DMA address and buffer offset types
Date: Sun, 27 Oct 2013 21:51:44 +0000 [thread overview]
Message-ID: <1382910704.2994.46.camel@deadeye.wl.decadent.org.uk> (raw)
In-Reply-To: <1382910437.2994.43.camel@deadeye.wl.decadent.org.uk>
[-- Attachment #1: Type: text/plain, Size: 2809 bytes --]
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).
Compile-tested only.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
drivers/net/wan/farsync.c | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 3f0c4f2..4b36676 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -886,15 +886,13 @@ 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 skb, 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)skb, mem, len);
if (card->dmarx_in_progress) {
dbg(DBG_ASS, "In fst_rx_dma while dma in progress\n");
}
@@ -915,20 +913,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 skb, 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)skb, 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(skb, 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 */
@@ -1405,9 +1402,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);
--
Ben Hutchings
If at first you don't succeed, you're doing about average.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2013-10-27 21:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-27 21:47 [PATCH 0/8] Fix minor address type errors Ben Hutchings
2013-10-27 21:50 ` [PATCH 1/8] IB/cxgb4: Fix formatting of physical address Ben Hutchings
2013-10-27 21:58 ` Joe Perches
2013-10-27 22:02 ` Ben Hutchings
2013-10-27 22:14 ` Joe Perches
2013-10-27 22:26 ` Ben Hutchings
2013-10-27 22:54 ` Joe Perches
2013-10-27 21:51 ` Ben Hutchings [this message]
2013-10-28 4:26 ` [PATCH 2/8] farsync: Fix confusion about DMA address and buffer offset types David Miller
2013-10-28 4:51 ` Ben Hutchings
2013-10-28 4:59 ` David Miller
2013-10-27 21:52 ` [PATCH 3/8] drm: Do not include page offset in argument to virt_to_page() Ben Hutchings
2013-10-27 21:52 ` [PATCH 4/8] drm: Pass pointers " Ben Hutchings
2013-10-27 21:53 ` [PATCH 5/8] [SCSI] tgt: Pass pointers to virt_to_page(), not integers Ben Hutchings
2013-10-27 21:53 ` [PATCH 6/8] uio: " Ben Hutchings
2013-10-27 21:54 ` [PATCH 7/8] rds: " Ben Hutchings
2013-10-28 4:26 ` David Miller
2013-10-28 14:22 ` Venkat Venkatsubra
2013-10-27 21:54 ` [PATCH 8/8] [SCSI] pmcraid: Pass pointers to access_ok(), " Ben Hutchings
-- strict thread matches above, loose matches on Subject: below --
2011-12-21 1:29 [PATCH 0/8] Fix virtual and physical address types Ben Hutchings
2011-12-21 1:32 ` [PATCH 2/8] farsync: Fix confusion about DMA address and buffer offset types Ben Hutchings
2011-12-21 4:46 ` David Miller
2011-12-21 5:41 ` Ben Hutchings
2011-12-21 8:33 ` Kevin Curtis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1382910704.2994.46.camel@deadeye.wl.decadent.org.uk \
--to=ben@decadent.org.uk \
--cc=kevin.curtis@farsite.co.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®