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: 104ea556 ("qdio: support asynchronous delivery of storage blocks")
Cc: <firstname.lastname@example.org> #v3.2+
Signed-off-by: Julian Wiedmann <email@example.com>
Signed-off-by: Martin Schwidefsky <firstname.lastname@example.org>
Signed-off-by: Greg Kroah-Hartman <email@example.com>