Re: Linux 3.0 release

From: Stephen Hemminger
Date: Fri Jul 22 2011 - 18:09:55 EST


On Fri, 22 Jul 2011 23:26:29 +0200
Francois Romieu <romieu@xxxxxxxxxxxxx> wrote:

> Stephen Hemminger <shemminger@xxxxxxxxxx> :
> > This a regression which probably began with
> >
> > commit e22bee782b3b00bd4534ae9b1c5fb2e8e6573c5c
> > Author: Tejun Heo <tj@xxxxxxxxxx>
> > Date: Tue Jun 29 10:07:14 2010 +0200
> >
> > workqueue: implement concurrency managed dynamic worker pool
> >
> > Before that it was perfectly legal for link watch code to
> > call schedule_delayed_work from IRQ. This should be allowable;
> > the code to manage the worker pool should handle it.
>
> I beg to differ: see Ben's first report
> (http://lists.openwall.net/netdev/2011/05/04/183).
> ^^
>
> One of the code path in the netif_carrier code leads it to try and disable
> a late workqueue to reenable it immediately (mod_workqueue anyone ?):
> netif_carrier_on
> -> linkwatch_fire_event
> -> linkwatch_schedule_work
> -> cancel_delayed_work
> -> del_timer_sync
>
> The del_timer_sync has been here for ages. Afaiks it is not a new pool code
> nor a schedule_delayed_work only problem.
>

That path can be fixed by calling _cancel_delayed_work() instead.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/