diff options
| -rw-r--r-- | drivers/i2c/chips/m41t00.c | 9 | ||||
| -rw-r--r-- | drivers/net/mv643xx_eth.c | 9 |
2 files changed, 13 insertions, 5 deletions
diff --git a/drivers/i2c/chips/m41t00.c b/drivers/i2c/chips/m41t00.c index 2dd0a34d9472..420377c86422 100644 --- a/drivers/i2c/chips/m41t00.c +++ b/drivers/i2c/chips/m41t00.c | |||
| @@ -215,8 +215,15 @@ m41t00_set(void *arg) | |||
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | static ulong new_time; | 217 | static ulong new_time; |
| 218 | /* well, isn't this API just _lovely_? */ | ||
| 219 | static void | ||
| 220 | m41t00_barf(struct work_struct *unusable) | ||
| 221 | { | ||
| 222 | m41t00_set(&new_time); | ||
| 223 | } | ||
| 224 | |||
| 218 | static struct workqueue_struct *m41t00_wq; | 225 | static struct workqueue_struct *m41t00_wq; |
| 219 | static DECLARE_WORK(m41t00_work, m41t00_set, &new_time); | 226 | static DECLARE_WORK(m41t00_work, m41t00_barf); |
| 220 | 227 | ||
| 221 | int | 228 | int |
| 222 | m41t00_set_rtc_time(ulong nowtime) | 229 | m41t00_set_rtc_time(ulong nowtime) |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 9997081c6dae..d9f48bb04b05 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; |
| @@ -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 | ||
