diff options
author | Jiri Kosina <jkosina@suse.cz> | 2013-04-16 15:40:09 -0700 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2013-04-30 10:09:31 +0200 |
commit | 2353f2bea307390e015493118e425152b8a5a431 (patch) | |
tree | beb7fd2471690bbd8b0d0982c3b1f40f6784adba /drivers/hid/hid-core.c | |
parent | a5f04b9df1113e0c16271afe5e43028f0d763f13 (diff) |
HID: protect hid_debug_list
Accesses to hid_device->hid_debug_list are not serialized properly, which
could result in SMP concurrency issues when HID debugfs events are accessesed
by multiple userspace processess.
Serialize all the list operations by a mutex.
Spotted by Al Viro.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r-- | drivers/hid/hid-core.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index f86dd9708ca..e7765ede339 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -2319,6 +2319,7 @@ struct hid_device *hid_allocate_device(void) init_waitqueue_head(&hdev->debug_wait); INIT_LIST_HEAD(&hdev->debug_list); + mutex_init(&hdev->debug_list_lock); sema_init(&hdev->driver_lock, 1); return hdev; |