From: Arnd Bergmann <arnd@arndb.de>
To: paulus@samba.org
Cc: linuxppc64-dev@ozlabs.org, netdev@vger.kernel.org,
Arnd Bergmann <arndb@de.ibm.com>,
Jens.Osterkamp@de.ibm.com
Subject: [PATCH 14/14] spidernet: fix HW structures for 64 bit dma_addr_t
Date: Mon, 05 Dec 2005 22:52:34 -0500 [thread overview]
Message-ID: <20051206040645.538783000@localhost> (raw)
In-Reply-To: 20051206035220.097737000@localhost
[-- Attachment #1: spidernet-dma_addr_t-fix-2.diff --]
[-- Type: text/plain, Size: 2460 bytes --]
The driver incorrectly used dma_addr_t to describe
HW structures and consequently broke when that type
was changed in 2.6.15-rc.
This changed spidernet to use u32 for 32 bit HW defined
structure elements.
From: Jens.Osterkamp@de.ibm.com
Cc: netdev@vger.kernel.org
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Index: linux-2.6.15-rc/drivers/net/spider_net.h
===================================================================
--- linux-2.6.15-rc.orig/drivers/net/spider_net.h
+++ linux-2.6.15-rc/drivers/net/spider_net.h
@@ -373,9 +373,9 @@ enum spider_net_descr_status {
struct spider_net_descr {
/* as defined by the hardware */
- dma_addr_t buf_addr;
+ u32 buf_addr;
u32 buf_size;
- dma_addr_t next_descr_addr;
+ u32 next_descr_addr;
u32 dmac_cmd_status;
u32 result_size;
u32 valid_size; /* all zeroes for tx */
Index: linux-2.6.15-rc/drivers/net/spider_net.c
===================================================================
--- linux-2.6.15-rc.orig/drivers/net/spider_net.c
+++ linux-2.6.15-rc/drivers/net/spider_net.c
@@ -480,6 +480,7 @@ static int
spider_net_prepare_rx_descr(struct spider_net_card *card,
struct spider_net_descr *descr)
{
+ dma_addr_t buf;
int error = 0;
int offset;
int bufsize;
@@ -510,10 +511,11 @@ spider_net_prepare_rx_descr(struct spide
if (offset)
skb_reserve(descr->skb, SPIDER_NET_RXBUF_ALIGN - offset);
/* io-mmu-map the skb */
- descr->buf_addr = pci_map_single(card->pdev, descr->skb->data,
+ buf = pci_map_single(card->pdev, descr->skb->data,
SPIDER_NET_MAX_MTU,
PCI_DMA_BIDIRECTIONAL);
- if (descr->buf_addr == DMA_ERROR_CODE) {
+ descr->buf_addr = buf;
+ if (buf == DMA_ERROR_CODE) {
dev_kfree_skb_any(descr->skb);
if (netif_msg_rx_err(card))
pr_err("Could not iommu-map rx buffer\n");
@@ -914,15 +916,16 @@ spider_net_prepare_tx_descr(struct spide
struct spider_net_descr *descr,
struct sk_buff *skb)
{
- descr->buf_addr = pci_map_single(card->pdev, skb->data,
- skb->len, PCI_DMA_BIDIRECTIONAL);
- if (descr->buf_addr == DMA_ERROR_CODE) {
+ dma_addr_t buf = pci_map_single(card->pdev, skb->data,
+ skb->len, PCI_DMA_BIDIRECTIONAL);
+ if (buf == DMA_ERROR_CODE) {
if (netif_msg_tx_err(card))
pr_err("could not iommu-map packet (%p, %i). "
"Dropping packet\n", skb->data, skb->len);
return -ENOMEM;
}
+ descr->buf_addr = buf;
descr->buf_size = skb->len;
descr->skb = skb;
descr->data_status = 0;
--
next prev parent reply other threads:[~2005-12-06 3:52 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20051206035220.097737000@localhost>
2005-12-06 3:52 ` [PATCH 11/14] spidernet: fix Kconfig after BPA->CELL rename Arnd Bergmann
2005-12-06 3:52 ` [PATCH 12/14] spidernet: check if firmware was loaded correctly Arnd Bergmann
2005-12-06 0:59 ` Paul Mackerras
2005-12-06 10:23 ` Arnd Bergmann
2005-12-07 9:53 ` Jens Osterkamp
2005-12-06 3:52 ` [PATCH 13/14] spidernet: read firmware from the OF device tree Arnd Bergmann
2005-12-06 3:52 ` Arnd Bergmann [this message]
[not found] ` <200512061118.19633.arnd@arndb.de>
[not found] ` <1133869108.7968.1.camel@localhost>
2005-12-06 18:49 ` [PATCH 02/14] spufs: fix local store page refcounting Arnd Bergmann
2005-12-06 19:05 ` Pekka Enberg
2005-12-06 21:10 ` Paul Mackerras
2005-12-06 21:41 ` Pekka Enberg
2005-12-06 22:19 ` Paul Mackerras
2005-12-06 22:27 ` Arnd Bergmann
2005-12-07 2:26 ` Al Viro
2005-12-07 3:15 ` Paul Mackerras
2005-12-07 8:21 ` Pekka Enberg
2005-12-07 10:17 ` Al Viro
2005-12-06 22:14 ` Nathan Lynch
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=20051206040645.538783000@localhost \
--to=arnd@arndb.de \
--cc=Jens.Osterkamp@de.ibm.com \
--cc=arndb@de.ibm.com \
--cc=linuxppc64-dev@ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=paulus@samba.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.