aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ni52.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ni52.c')
-rw-r--r--drivers/net/ni52.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index f7a8f707361e..9bddb5fa7a96 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -595,7 +595,7 @@ static int init586(struct net_device *dev)
595 struct iasetup_cmd_struct __iomem *ias_cmd; 595 struct iasetup_cmd_struct __iomem *ias_cmd;
596 struct tdr_cmd_struct __iomem *tdr_cmd; 596 struct tdr_cmd_struct __iomem *tdr_cmd;
597 struct mcsetup_cmd_struct __iomem *mc_cmd; 597 struct mcsetup_cmd_struct __iomem *mc_cmd;
598 struct dev_mc_list *dmi; 598 struct netdev_hw_addr *ha;
599 int num_addrs = netdev_mc_count(dev); 599 int num_addrs = netdev_mc_count(dev);
600 600
601 ptr = p->scb + 1; 601 ptr = p->scb + 1;
@@ -724,8 +724,8 @@ static int init586(struct net_device *dev)
724 writew(num_addrs * 6, &mc_cmd->mc_cnt); 724 writew(num_addrs * 6, &mc_cmd->mc_cnt);
725 725
726 i = 0; 726 i = 0;
727 netdev_for_each_mc_addr(dmi, dev) 727 netdev_for_each_mc_addr(ha, dev)
728 memcpy_toio(mc_cmd->mc_list[i++], dmi->dmi_addr, 6); 728 memcpy_toio(mc_cmd->mc_list[i++], ha->addr, 6);
729 729
730 writew(make16(mc_cmd), &p->scb->cbl_offset); 730 writew(make16(mc_cmd), &p->scb->cbl_offset);
731 writeb(CUC_START, &p->scb->cmd_cuc); 731 writeb(CUC_START, &p->scb->cmd_cuc);
@@ -1147,7 +1147,7 @@ static void ni52_timeout(struct net_device *dev)
1147 writeb(CUC_START, &p->scb->cmd_cuc); 1147 writeb(CUC_START, &p->scb->cmd_cuc);
1148 ni_attn586(); 1148 ni_attn586();
1149 wait_for_scb_cmd(dev); 1149 wait_for_scb_cmd(dev);
1150 dev->trans_start = jiffies; 1150 dev->trans_start = jiffies; /* prevent tx timeout */
1151 return 0; 1151 return 0;
1152 } 1152 }
1153#endif 1153#endif
@@ -1165,7 +1165,7 @@ static void ni52_timeout(struct net_device *dev)
1165 ni52_close(dev); 1165 ni52_close(dev);
1166 ni52_open(dev); 1166 ni52_open(dev);
1167 } 1167 }
1168 dev->trans_start = jiffies; 1168 dev->trans_start = jiffies; /* prevent tx timeout */
1169} 1169}
1170 1170
1171/****************************************************** 1171/******************************************************
@@ -1218,7 +1218,6 @@ static netdev_tx_t ni52_send_packet(struct sk_buff *skb,
1218 writeb(CUC_START, &p->scb->cmd_cuc); 1218 writeb(CUC_START, &p->scb->cmd_cuc);
1219 } 1219 }
1220 ni_attn586(); 1220 ni_attn586();
1221 dev->trans_start = jiffies;
1222 if (!i) 1221 if (!i)
1223 dev_kfree_skb(skb); 1222 dev_kfree_skb(skb);
1224 wait_for_scb_cmd(dev); 1223 wait_for_scb_cmd(dev);
@@ -1240,7 +1239,6 @@ static netdev_tx_t ni52_send_packet(struct sk_buff *skb,
1240 writew(0, &p->nop_cmds[next_nop]->cmd_status); 1239 writew(0, &p->nop_cmds[next_nop]->cmd_status);
1241 1240
1242 writew(make16(p->xmit_cmds[0]), &p->nop_cmds[p->nop_point]->cmd_link); 1241 writew(make16(p->xmit_cmds[0]), &p->nop_cmds[p->nop_point]->cmd_link);
1243 dev->trans_start = jiffies;
1244 p->nop_point = next_nop; 1242 p->nop_point = next_nop;
1245 dev_kfree_skb(skb); 1243 dev_kfree_skb(skb);
1246# endif 1244# endif
@@ -1256,7 +1254,6 @@ static netdev_tx_t ni52_send_packet(struct sk_buff *skb,
1256 writew(0, &p->nop_cmds[next_nop]->cmd_status); 1254 writew(0, &p->nop_cmds[next_nop]->cmd_status);
1257 writew(make16(p->xmit_cmds[p->xmit_count]), 1255 writew(make16(p->xmit_cmds[p->xmit_count]),
1258 &p->nop_cmds[p->xmit_count]->cmd_link); 1256 &p->nop_cmds[p->xmit_count]->cmd_link);
1259 dev->trans_start = jiffies;
1260 p->xmit_count = next_nop; 1257 p->xmit_count = next_nop;
1261 { 1258 {
1262 unsigned long flags; 1259 unsigned long flags;