Thread (2 messages) flat view 2 messages, 2 authors, 2012-08-24
STALE5122d

[PATCH V2] mxs/spi: Fix misuse of init_completion

From: Chris Ball <hidden>
Date: 2012-08-24 02:44:17
Also in: linux-spi

Hi Marek,

On Thu, Aug 23 2012, Marek Vasut wrote:
The init_completion() call does reinit not only the variable carrying
the flag that the completion finished, but also initialized the
waitqueue associated with the completion. On the contrary, the
INIT_WAITQUEUE() call only reinits the flag.

In case there was anything still stuck in the waitqueue, subsequent call
to init_completion() would be able to create possible race condition. This
patch uses the proper function and moves init_completion() into .probe() call
of the driver, to be issued only once.

Note that such scenario is impossible, since two threads can never enter the
mxs_spi_txrx_dma(), since whole this section is protected by mutex in SPI core.
This by no means allows this issue to exit though.

Signed-off-by: Marek Vasut <marex@denx.de>
Thanks for writing that up -- I appreciate seeing the explanation of the
problems this could have caused.

- Chris.
-- 
Chris Ball   [off-list ref]   <http://printf.net/>
One Laptop Per Child
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help