linux-stable/drivers/s390/cio
Julian Wiedmann b9f66a2ba6 s390/qdio: reset old sbal_state flags
commit 64e03ff726 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:20:10 +02:00
..
airq.c
blacklist.c
blacklist.h
ccwgroup.c
ccwreq.c
chp.c
chp.h
chsc.c s390/cio: update chpid descriptor after resource accessibility event 2018-04-29 11:32:02 +02:00
chsc.h
chsc_sch.c
chsc_sch.h
cio.c
cio.h
cio_debug.h
cmf.c
crw.c
css.c
css.h
device.c
device.h
device_fsm.c s390/cio: clear timer when terminating driver I/O 2018-05-30 07:50:29 +02:00
device_id.c
device_ops.c s390/cio: fix ccw_device_start_timeout API 2018-05-30 07:50:29 +02:00
device_pgid.c
device_status.c
eadm_sch.c
eadm_sch.h
fcx.c
idset.c
idset.h
io_sch.h s390/cio: fix return code after missing interrupt 2018-05-30 07:50:29 +02:00
ioasm.c
ioasm.h
isc.c
itcw.c
Makefile
orb.h
qdio.h
qdio_debug.c
qdio_debug.h
qdio_main.c s390/qdio: reset old sbal_state flags 2018-09-05 09:20:10 +02:00
qdio_setup.c s390/qdio: don't release memory in qdio_setup_irq() 2018-05-22 16:57:57 +02:00
qdio_thinint.c
scm.c
trace.c
trace.h