hamachi PCI DMA fix from 2.4

hamachi PCI DMA fix from 2.4

Post by da.. » Fri, 16 May 2003 05:50:12



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

 /* 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  

                        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",
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/