* hamachi PCI DMA fix from 2.4
@ 2003-05-15 3:31 davej
0 siblings, 0 replies; only message in thread
From: davej @ 2003-05-15 3:31 UTC (permalink / raw)
To: jgarzik; +Cc: linux-kernel
Maintainer fix that went into 2.4 last August with the comments
"Get hamachi net driver RX working again.
Apparently the PCI DMA conversion still has a bug or two left in it..."
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/net/hamachi.c linux-2.5/drivers/net/hamachi.c
--- bk-linus/drivers/net/hamachi.c 2003-04-22 00:40:42.000000000 +0100
+++ linux-2.5/drivers/net/hamachi.c 2003-04-22 01:23:14.000000000 +0100
@@ -207,8 +207,10 @@ KERN_INFO " Further modifications by K
/* Condensed bus+endian portability operations. */
#if ADDRLEN == 64
#define cpu_to_leXX(addr) cpu_to_le64(addr)
+#define desc_to_virt(addr) bus_to_virt(le64_to_cpu(addr))
#else
#define cpu_to_leXX(addr) cpu_to_le32(addr)
+#define desc_to_virt(addr) bus_to_virt(le32_to_cpu(addr))
#endif
@@ -1497,7 +1499,7 @@ static int hamachi_rx(struct net_device
break;
pci_dma_sync_single(hmp->pci_dev, desc->addr, hmp->rx_buf_sz,
PCI_DMA_FROMDEVICE);
- buf_addr = (u8 *)hmp->rx_ring + entry*sizeof(*desc);
+ buf_addr = desc_to_virt(desc->addr);
frame_status = le32_to_cpu(get_unaligned((s32*)&(buf_addr[data_size - 12])));
if (hamachi_debug > 4)
printk(KERN_DEBUG " hamachi_rx() status was %8.8x.\n",
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-05-15 3:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-15 3:31 hamachi PCI DMA fix from 2.4 davej
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®