Bug 62685 - Broken driver for Packet Engines GNIC-2 (hamachi) network card
Summary: Broken driver for Packet Engines GNIC-2 (hamachi) network card
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Public Beta
Classification: Retired
Component: kernel
Version: skipjack-beta1
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-04-04 14:34 UTC by keithu@parl.clemson.edu
Modified: 2007-04-18 16:41 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2002-04-04 14:34:15 UTC
Embargoed:


Attachments (Terms of Use)

Description keithu@parl.clemson.edu 2002-04-04 14:34:08 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.79 [en] (X11; U; Linux 2.4.18-0.4 i686)

Description of problem:
Most versions of the 2.4 kernel have a broken driver for the packet engines
GNIC-2 (hamachi) gigabit ethernet card.  I submitted a patch to Jeff Garzik for
the main kernel tree, but I want to make sure that this patch makes it into the
RH 7.3 release kernel.  

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.try using a hamachi gigE card
2.
3.
	

Actual Results:  It cannot receive packets.

Expected Results:  It should receive packets.

Additional info:

Here is the patch:

--- drivers/net/hamachi.c       Mon Feb 25 14:37:59 2002
+++ drivers/net/hamachi.patched.c       Tue Apr  2 15:32:45 2002
@@ -210,8 +210,10 @@
 /* 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   
 
 
@@ -1544,7 +1546,8 @@
                        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 = (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",

Comment 1 Arjan van de Ven 2002-04-05 11:02:28 UTC
Thanks for the heads up; added.


Note You need to log in before you can comment on or make changes to this bug.