s390/cio: fix premature wakeup during chp configure
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Tue, 19 Jul 2016 08:53:35 +0000 (10:53 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Sun, 31 Jul 2016 09:27:57 +0000 (05:27 -0400)
commit4475aeb8b77db34dea96b09900ba0cb245b6fb42
tree942a35fdef5895cc8e29e7633c204271597e9e5b
parent837c5220557270e652d89f68a9fb12a5e72e8a7a
s390/cio: fix premature wakeup during chp configure

We store requests for channel path configure operations in an array but
maintain an additional cfg_busy variable (indicating if we have requests
stored in said array). When 2 tasks request a channel path configure
operation cfg_busy could be set to 0 even if we still have unprocessed
requests. This would lead to the second task being woken up although its
request was not processed yet.

Fix that by getting rid of cfg_busy and use the chp_cfg_task array
in the wake up condition.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/chp.c