android_kernel_samsung_univ.../drivers/s390
Julian Wiedmann b629d4650a s390/qdio: reset old sbal_state flags
commit 64e03ff72623b8c2ea89ca3cb660094e019ed4ae upstream.

When allocating a new AOB fails, handle_outbound() is still capable of
transmitting the selected buffer (just without async completion).

But if a previous transfer on this queue slot used async completion, its
sbal_state flags field is still set to QDIO_OUTBUF_STATE_FLAG_PENDING.
So when the upper layer driver sees this stale flag, it expects an async
completion that never happens.

Fix this by unconditionally clearing the flags field.

Fixes: 104ea556ee ("qdio: support asynchronous delivery of storage blocks")
Cc: <stable@vger.kernel.org> #v3.2+
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-05 09:18:40 +02:00
..
block s390/dasd: fix hanging safe offline 2018-04-13 19:50:21 +02:00
char s390: introduce execute-trampolines for branches 2018-04-29 07:50:03 +02:00
cio s390/qdio: reset old sbal_state flags 2018-09-05 09:18:40 +02:00
crypto s390/zcrypt: Introduce CEX6 toleration 2017-03-30 09:35:20 +02:00
net s390/qeth: on channel error, reject further cmd requests 2018-03-31 18:12:34 +02:00
scsi scsi: zfcp: fix missing REC trigger trace on enqueue without ERP thread 2018-07-03 11:21:31 +02:00
virtio virtio/s390: handle error values in irb 2015-12-17 10:37:33 +02:00
Makefile