[SRU][Cosmic][Bionic][Xenial][PATCH 0/1] Fixes for LP1801686
Frank Heimes
frank.heimes at canonical.com
Mon Nov 5 18:21:41 UTC 2018
BugLink: http://bugs.launchpad.net/bugs/1801686
== SRU Justification ==
Description: qdio: reset old sbal_state flags
Symptom:
af_iucv socket using HiperSockets may stall.
Problem:
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.
Solution:
Unconditionally clear the buffer's flags field.
== Fix ==
64e03ff72623b8c2ea89ca3cb660094e019ed4ae ("s390/qdio: reset old sbal_state
flags")
== Regression Potential ==
Low, because:
- s390x only
- further limited to qeth driver (OSA Express networking)
- changes are limited to two files and 6 lines
- arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h
- drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
- error was identified at IBM/customer, fix was created there and tested
upfront
- (changes are upstream in 4.20 (according to bug description,
but in 4.19 according to 'git tag'),
hence will make it automatically into 'disco')
== Test Case ==
Test case / reproduction:
Error inject and then simulate out-of-memory situation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20181105/983e6eca/attachment.html>
More information about the kernel-team
mailing list