diff options
Diffstat (limited to 'drivers/net/tehuti.c')
| -rw-r--r-- | drivers/net/tehuti.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c index f5493092521a..e29f495c6a2b 100644 --- a/drivers/net/tehuti.c +++ b/drivers/net/tehuti.c | |||
| @@ -808,7 +808,7 @@ static void bdx_setmulti(struct net_device *ndev) | |||
| 808 | WRITE_REG(priv, regRX_MCST_HASH0 + i * 4, ~0); | 808 | WRITE_REG(priv, regRX_MCST_HASH0 + i * 4, ~0); |
| 809 | } else if (!netdev_mc_empty(ndev)) { | 809 | } else if (!netdev_mc_empty(ndev)) { |
| 810 | u8 hash; | 810 | u8 hash; |
| 811 | struct dev_mc_list *mclist; | 811 | struct netdev_hw_addr *ha; |
| 812 | u32 reg, val; | 812 | u32 reg, val; |
| 813 | 813 | ||
| 814 | /* set IMF to deny all multicast frames */ | 814 | /* set IMF to deny all multicast frames */ |
| @@ -825,10 +825,10 @@ static void bdx_setmulti(struct net_device *ndev) | |||
| 825 | * into RX_MAC_MCST regs. we skip this phase now and accept ALL | 825 | * into RX_MAC_MCST regs. we skip this phase now and accept ALL |
| 826 | * multicast frames throu IMF */ | 826 | * multicast frames throu IMF */ |
| 827 | /* accept the rest of addresses throu IMF */ | 827 | /* accept the rest of addresses throu IMF */ |
| 828 | netdev_for_each_mc_addr(mclist, ndev) { | 828 | netdev_for_each_mc_addr(ha, ndev) { |
| 829 | hash = 0; | 829 | hash = 0; |
| 830 | for (i = 0; i < ETH_ALEN; i++) | 830 | for (i = 0; i < ETH_ALEN; i++) |
| 831 | hash ^= mclist->dmi_addr[i]; | 831 | hash ^= ha->addr[i]; |
| 832 | reg = regRX_MCST_HASH0 + ((hash >> 5) << 2); | 832 | reg = regRX_MCST_HASH0 + ((hash >> 5) << 2); |
| 833 | val = READ_REG(priv, reg); | 833 | val = READ_REG(priv, reg); |
| 834 | val |= (1 << (hash % 32)); | 834 | val |= (1 << (hash % 32)); |
| @@ -1303,7 +1303,6 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget) | |||
| 1303 | priv->net_stats.rx_bytes += len; | 1303 | priv->net_stats.rx_bytes += len; |
| 1304 | 1304 | ||
| 1305 | skb_put(skb, len); | 1305 | skb_put(skb, len); |
| 1306 | skb->dev = priv->ndev; | ||
| 1307 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 1306 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
| 1308 | skb->protocol = eth_type_trans(skb, priv->ndev); | 1307 | skb->protocol = eth_type_trans(skb, priv->ndev); |
| 1309 | 1308 | ||
| @@ -1509,7 +1508,7 @@ bdx_tx_map_skb(struct bdx_priv *priv, struct sk_buff *skb, | |||
| 1509 | int nr_frags = skb_shinfo(skb)->nr_frags; | 1508 | int nr_frags = skb_shinfo(skb)->nr_frags; |
| 1510 | int i; | 1509 | int i; |
| 1511 | 1510 | ||
| 1512 | db->wptr->len = skb->len - skb->data_len; | 1511 | db->wptr->len = skb_headlen(skb); |
| 1513 | db->wptr->addr.dma = pci_map_single(priv->pdev, skb->data, | 1512 | db->wptr->addr.dma = pci_map_single(priv->pdev, skb->data, |
| 1514 | db->wptr->len, PCI_DMA_TODEVICE); | 1513 | db->wptr->len, PCI_DMA_TODEVICE); |
| 1515 | pbl->len = CPU_CHIP_SWAP32(db->wptr->len); | 1514 | pbl->len = CPU_CHIP_SWAP32(db->wptr->len); |
