Messages in this thread | | | Date | Fri, 22 Jul 2011 13:32:20 -0700 | From | Stephen Hemminger <> | Subject | Re: Linux 3.0 release |
| |
This a regression which probably began with
commit e22bee782b3b00bd4534ae9b1c5fb2e8e6573c5c Author: Tejun Heo <tj@kernel.org> 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.
Network devices call netif_carrier_on/off from IRQ all the time. The problem is that the new pool code breaks this if link watch tries to schedule work before there enough worker threads.
The workqueue code should have a fallback and not try and do anything if being called from IRQ.
| |