tlan: Fix two regressions introduced by 64bit conversion.
authorRobert Fitzsimons <robfitz@273k.net>
Sat, 9 Aug 2008 16:54:02 +0000 (17:54 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 14 Aug 2008 08:28:12 +0000 (04:28 -0400)
Two regressions were introduced by the recent tlan: 64bit conversion
commit (93e16847c9db0093065c98063cfc639cdfccf19a).  The first in
TLan_GetSKB caused a NULL pointer dereference.  With the second causing
the link to fail to come up.

Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/tlan.c

index 85246ed..ec871f6 100644 (file)
@@ -360,8 +360,8 @@ TLan_GetSKB( const struct tlan_list_tag *tag)
 {
        unsigned long addr;
 
-       addr = tag->buffer[8].address;
-       addr |= (tag->buffer[9].address << 16) << 16;
+       addr = tag->buffer[9].address;
+       addr |= (tag->buffer[8].address << 16) << 16;
        return (struct sk_buff *) addr;
 }
 
@@ -1984,7 +1984,6 @@ static void TLan_ResetLists( struct net_device *dev )
        TLanList        *list;
        dma_addr_t      list_phys;
        struct sk_buff  *skb;
-       void            *t = NULL;
 
        priv->txHead = 0;
        priv->txTail = 0;
@@ -2022,7 +2021,8 @@ static void TLan_ResetLists( struct net_device *dev )
                        }
 
                        skb_reserve( skb, NET_IP_ALIGN );
-                       list->buffer[0].address = pci_map_single(priv->pciDev, t,
+                       list->buffer[0].address = pci_map_single(priv->pciDev,
+                                                                skb->data,
                                                                 TLAN_MAX_FRAME_SIZE,
                                                                 PCI_DMA_FROMDEVICE);
                        TLan_StoreSKB(list, skb);