GenWQE: Support blocking when DDCB queue is busy
authorFrank Haverkamp <haver@linux.vnet.ibm.com>
Wed, 10 Sep 2014 14:37:53 +0000 (16:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Sep 2014 06:15:47 +0000 (23:15 -0700)
commit1451f414639465995dfc1f820aa1a64723cbd662
treed1983ab9e5d532368ad82261295a78c114fa8514
parent08e4906cc29d092ae2da0ff089efe1488e584d3c
GenWQE: Support blocking when DDCB queue is busy

When the GenWQE hardware queue was busy, the driver returned simply
-EBUSY. This caused polling by applications which increased the load
on the already busy system. This change implements the possiblity to
sleep on a waitqueue instead when the DDCB queue is busy. The
requestor is woken up when there is free space on the queue again.
The old way to get -EBUSY is still available if the device is openend
with O_NONBLOCKING. The default is now blocking behavior.

Signed-off-by: Frank Haverkamp <haver@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/genwqe/card_base.h
drivers/misc/genwqe/card_ddcb.c
drivers/misc/genwqe/card_debugfs.c
drivers/misc/genwqe/card_dev.c