The macb driver calls schedule_delayed_work() and friends, so we need to use a struct delayed_work along with it. The conversion was explained by David Howells on lkml Dec 5 2006:
http://lkml.org/lkml/2006/12/5/269 Signed-off-by: Haavard Skinnemoen <[EMAIL PROTECTED]> --- drivers/net/macb.c | 6 +++--- drivers/net/macb.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/macb.c b/drivers/net/macb.c index bd0ce98..3496d19 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -267,9 +267,9 @@ static void macb_update_stats(struct mac *p += readl(reg); } -static void macb_periodic_task(void *arg) +static void macb_periodic_task(struct work_struct *work) { - struct macb *bp = arg; + struct macb *bp = container_of(work, struct macb, periodic_task.work); macb_update_stats(bp); macb_check_media(bp, 1, 0); @@ -1088,7 +1088,7 @@ static int __devinit macb_probe(struct p dev->base_addr = regs->start; - INIT_WORK(&bp->periodic_task, macb_periodic_task, bp); + INIT_DELAYED_WORK(&bp->periodic_task, macb_periodic_task); mutex_init(&bp->mdio_mutex); init_completion(&bp->mdio_complete); diff --git a/drivers/net/macb.h b/drivers/net/macb.h index 8c253db..e3fcb2e 100644 --- a/drivers/net/macb.h +++ b/drivers/net/macb.h @@ -377,7 +377,7 @@ struct macb { unsigned int rx_pending, tx_pending; - struct work_struct periodic_task; + struct delayed_work periodic_task; struct mutex mdio_mutex; struct completion mdio_complete; -- 1.4.3.3 - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html