cxl: Fix afu_read() not doing finish_wait() on signal or non-blocking
authorIan Munsie <imunsie@au1.ibm.com>
Thu, 9 Oct 2014 00:17:46 +0000 (11:17 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 9 Oct 2014 00:29:57 +0000 (11:29 +1100)
commitd53ba6b3bba33432cc37b7101a86f8f3392c46e7
treea82fe60070c230303bc1daa7ce55384ab46904d0
parenta9282d01cf357379ce29103cec5e7651a53c634d
cxl: Fix afu_read() not doing finish_wait() on signal or non-blocking

If afu_read() returned due to a signal or the AFU file descriptor being
opened non-blocking it would not call finish_wait() before returning,
which could lead to a crash later when something else wakes up the wait
queue.

This patch restructures the wait logic to ensure that the cleanup is
done correctly.

Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
drivers/misc/cxl/file.c