s390/qdio: improve handling of PENDING buffers for QEBSM devices
authorJulian Wiedmann <jwi@linux.ibm.com>
Sat, 30 Jan 2021 12:04:53 +0000 (13:04 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sat, 13 Feb 2021 16:17:55 +0000 (17:17 +0100)
commit7940eaf2e956ce3d67ac9efb5b621adbb823e049
tree485f4f8d392a869d54a22e4628d3c6acf4c48082
parent540936df443859244e1a76331524600c35b225d0
s390/qdio: improve handling of PENDING buffers for QEBSM devices

For QEBSM devices the 'merge_pending' mechanism in get_buf_states()
doesn't apply, and we can actually get SLSB_P_OUTPUT_PENDING returned.

So for this case propagating the PENDING state to the driver via the
queue's sbal_state doesn't make sense and creates unnecessary overhead.
Instead introduce a new QDIO_ERROR_* flag that gets passed to the
driver, and triggers the same processing as if the buffers were flagged
as QDIO_OUTBUF_STATE_FLAG_PENDING.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/qdio.h
drivers/s390/cio/qdio_main.c
drivers/s390/net/qeth_core_main.c