https://github.com/torvalds/linux
Revision 3c46f3d6406b1d0c53575774b2d1fd013cd7f76f authored by Linus Torvalds on 02 December 2012, 01:55:13 UTC, committed by Linus Torvalds on 02 December 2012, 01:55:13 UTC
Pull late workqueue fixes from Tejun Heo: "Unfortunately, I have two really late fixes. One was for a long-standing bug and queued for 3.8 but I found out about a regression introduced during 3.7-rc1 two days ago, so I'm sending out the two fixes together. The first (long-standing) one is rescuer_thread() entering exit path w/ TASK_INTERRUPTIBLE. It only triggers on workqueue destructions which isn't very frequent and the exit path can usually survive being called with TASK_INTERRUPT, so it was hidden pretty well. Apparently, if you're reiserfs, this could lead to the exiting kthread sleeping indefinitely holding a mutex, which is never good. The fix is simple - restoring TASK_RUNNING before returning from the kthread function. The second one is introduced by the new mod_delayed_work(). mod_delayed_work() was missing special case handling for 0 delay. Instead of queueing the work item immediately, it queued the timer which expires on the closest next tick. Some users of the new function converted from "[__]cancel_delayed_work() + queue_delayed_work()" combination became unhappy with the extra delay. Block unplugging led to noticeably higher number of context switches and intel 6250 wireless failed to associate with WPA-Enterprise network. The fix, again, is fairly simple. The 0 delay special case logic from queue_delayed_work_on() should be moved to __queue_delayed_work() which is shared by both queue_delayed_work_on() and mod_delayed_work_on(). The first one is difficult to trigger and the failure mode for the latter isn't completely catastrophic, so missing these two for 3.7 wouldn't make it a disastrous release, but both bugs are nasty and the fixes are fairly safe" * 'for-3.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: mod_delayed_work_on() shouldn't queue timer on 0 delay workqueue: exit rescuer_thread() as TASK_RUNNING
Tip revision: 3c46f3d6406b1d0c53575774b2d1fd013cd7f76f authored by Linus Torvalds on 02 December 2012, 01:55:13 UTC
Merge branch 'for-3.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Merge branch 'for-3.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Tip revision: 3c46f3d
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 1.5 KB |
Makefile | -rw-r--r-- | 374 bytes |
caif_dev.c | -rw-r--r-- | 12.7 KB |
caif_socket.c | -rw-r--r-- | 26.7 KB |
caif_usb.c | -rw-r--r-- | 5.4 KB |
cfcnfg.c | -rw-r--r-- | 14.3 KB |
cfctrl.c | -rw-r--r-- | 15.9 KB |
cfdbgl.c | -rw-r--r-- | 1.5 KB |
cfdgml.c | -rw-r--r-- | 2.9 KB |
cffrml.c | -rw-r--r-- | 4.5 KB |
cfmuxl.c | -rw-r--r-- | 6.3 KB |
cfpkt_skbuff.c | -rw-r--r-- | 8.7 KB |
cfrfml.c | -rw-r--r-- | 6.4 KB |
cfserl.c | -rw-r--r-- | 4.4 KB |
cfsrvl.c | -rw-r--r-- | 5.5 KB |
cfutill.c | -rw-r--r-- | 2.8 KB |
cfveil.c | -rw-r--r-- | 2.6 KB |
cfvidl.c | -rw-r--r-- | 1.8 KB |
chnl_net.c | -rw-r--r-- | 13.2 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...