diff options
author | Dmitry Torokhov <dtor@insightbb.com> | 2006-12-08 01:07:56 -0500 |
---|---|---|
committer | Dmitry Torokhov <dtor@insightbb.com> | 2006-12-08 01:07:56 -0500 |
commit | bef986502fa398b1785a3979b1aa17cd902d3527 (patch) | |
tree | b59c1afe7b1dfcc001b86e54863f550d7ddc8c34 /drivers/net/mv643xx_eth.c | |
parent | 4bdbd2807deeccc0793d57fb5120d7a53f2c0b3c (diff) | |
parent | c99767974ebd2a719d849fdeaaa1674456f5283f (diff) |
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/usb/input/hid.h
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
-rw-r--r-- | drivers/net/mv643xx_eth.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 9997081c6dae..c41ae4286eea 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -277,9 +277,11 @@ static void mv643xx_eth_tx_timeout(struct net_device *dev) | |||
277 | * | 277 | * |
278 | * Actual routine to reset the adapter when a timeout on Tx has occurred | 278 | * Actual routine to reset the adapter when a timeout on Tx has occurred |
279 | */ | 279 | */ |
280 | static void mv643xx_eth_tx_timeout_task(struct net_device *dev) | 280 | static void mv643xx_eth_tx_timeout_task(struct work_struct *ugly) |
281 | { | 281 | { |
282 | struct mv643xx_private *mp = netdev_priv(dev); | 282 | struct mv643xx_private *mp = container_of(ugly, struct mv643xx_private, |
283 | tx_timeout_task); | ||
284 | struct net_device *dev = mp->mii.dev; /* yuck */ | ||
283 | 285 | ||
284 | if (!netif_running(dev)) | 286 | if (!netif_running(dev)) |
285 | return; | 287 | return; |
@@ -1098,7 +1100,7 @@ static void eth_tx_fill_frag_descs(struct mv643xx_private *mp, | |||
1098 | ETH_TX_ENABLE_INTERRUPT; | 1100 | ETH_TX_ENABLE_INTERRUPT; |
1099 | mp->tx_skb[tx_index] = skb; | 1101 | mp->tx_skb[tx_index] = skb; |
1100 | } else | 1102 | } else |
1101 | mp->tx_skb[tx_index] = 0; | 1103 | mp->tx_skb[tx_index] = NULL; |
1102 | 1104 | ||
1103 | desc = &mp->p_tx_desc_area[tx_index]; | 1105 | desc = &mp->p_tx_desc_area[tx_index]; |
1104 | desc->l4i_chk = 0; | 1106 | desc->l4i_chk = 0; |
@@ -1134,7 +1136,7 @@ static void eth_tx_submit_descs_for_skb(struct mv643xx_private *mp, | |||
1134 | eth_tx_fill_frag_descs(mp, skb); | 1136 | eth_tx_fill_frag_descs(mp, skb); |
1135 | 1137 | ||
1136 | length = skb_headlen(skb); | 1138 | length = skb_headlen(skb); |
1137 | mp->tx_skb[tx_index] = 0; | 1139 | mp->tx_skb[tx_index] = NULL; |
1138 | } else { | 1140 | } else { |
1139 | cmd_sts |= ETH_ZERO_PADDING | | 1141 | cmd_sts |= ETH_ZERO_PADDING | |
1140 | ETH_TX_LAST_DESC | | 1142 | ETH_TX_LAST_DESC | |
@@ -1360,8 +1362,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev) | |||
1360 | #endif | 1362 | #endif |
1361 | 1363 | ||
1362 | /* Configure the timeout task */ | 1364 | /* Configure the timeout task */ |
1363 | INIT_WORK(&mp->tx_timeout_task, | 1365 | INIT_WORK(&mp->tx_timeout_task, mv643xx_eth_tx_timeout_task); |
1364 | (void (*)(void *))mv643xx_eth_tx_timeout_task, dev); | ||
1365 | 1366 | ||
1366 | spin_lock_init(&mp->lock); | 1367 | spin_lock_init(&mp->lock); |
1367 | 1368 | ||