summaryrefslogtreecommitdiff
path: root/include/video
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2014-11-27 11:09:02 +1100
committerStephen Rothwell <sfr@canb.auug.org.au>2014-11-27 11:09:02 +1100
commitf4add98b81e6cfa37f05acf8b28dbe10087bac49 (patch)
tree1f499cfaad3407f01e2d262957beb7561b173454 /include/video
parent87edffc2f73d3681c3fdd2ef4a581a45a778bda5 (diff)
Defer input led work to workqueue
When the kbd changes its led state (e.g. caps lock), this triggers (led_trigger_event) the kbd-capsl trigger, which is by default used by the vt::capsl LED, which triggers (led_trigger_event) the vt-capsl trigger. These two nested led_trigger_event calls take a trig->leddev_list_lock lock and thus lockdep complains. Actually the user can make the vt::capsl LED use its own vt-capsl trigger and thus build a loop. This produces an immediate oops. This changeset defers the second led_trigger_event call into a workqueue, which avoids the nested locking altogether. This does not prevent the user from shooting himself in the foot by creating a vt::capsl <-> vt-capsl loop, but the only consequence is the workqueue threads eating some CPU until the user breaks the loop, which is not too bad. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'include/video')
0 files changed, 0 insertions, 0 deletions