From: Daniel Wagner <daniel.wag...@bmw-carit.de> There is only one waiter for the completion, therefore there is no need to use complete_all(). Let's make that clear by using complete() instead of complete_all().
The usage pattern of the completion is: waiter context waker context read_local_version() reinit_completion() st_int_write() wait_for_completion_interruptible_timeout() validate_firmware_response() complete() reinit_completion() Signed-off-by: Daniel Wagner <daniel.wag...@bmw-carit.de> --- drivers/misc/ti-st/st_kim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c index bf0d770..0e1c94a 100644 --- a/drivers/misc/ti-st/st_kim.c +++ b/drivers/misc/ti-st/st_kim.c @@ -88,7 +88,7 @@ static void validate_firmware_response(struct kim_data_s *kim_gdata) return; /* keep waiting for the proper response */ } /* becos of all the script being downloaded */ - complete_all(&kim_gdata->kim_rcvd); + complete(&kim_gdata->kim_rcvd); kfree_skb(skb); } -- 2.7.4