]> Pileus Git - ~andy/linux/commit
drivers: misc: ti-st: fix potential race if st_kim_start fails
authorOleksandr Kozaruk <alkhozar@gmail.com>
Thu, 29 Aug 2013 07:55:48 +0000 (10:55 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Aug 2013 19:08:04 +0000 (12:08 -0700)
commit3a2d3d213d7c9bb427cc5bdb0de34fe18a22363e
treefbccf835005f082035fd0ab5354e65f456929800
parent666b9adc801ef012612c4e43e0f44b2cdc1979cf
drivers: misc: ti-st: fix potential race if st_kim_start fails

If st_kim_start() fails registered protocols should be removed. This is
done by calling st_reg_complete(), which as comment states is called
with spin lock held. But in st_register() when st_kim_start fails it
is called without holding spin lock, creating possibility of concurrent
access to st_gdata data members.
Hold spin lock while calling st_reg_complete if st_kim_start() fails.

Signed-off-by: Oleksandr Kozaruk <oleksandr.kozaruk@globallogic.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/ti-st/st_core.c