]> git.baikalelectronics.ru Git - kernel.git/commit
s390/qdio: let driver manage the QAOB
authorJulian Wiedmann <jwi@linux.ibm.com>
Sat, 30 Jan 2021 13:56:20 +0000 (14:56 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 22 Mar 2021 10:36:05 +0000 (11:36 +0100)
commitc4e4c4d3659c80b7ae923dc085fbf72ccb985d70
treefa6cce781434347752192a274e80e899806e98c4
parent268ced776b41ecb81e1b2b34d2de97c6317ffc7a
s390/qdio: let driver manage the QAOB

We are spending way too much effort on qdio-internal bookkeeping for
QAOB management & caching, and it's still not robust. Once qdio's
TX path has detached the QAOB from a PENDING buffer, we lost all
track of it until it shows up in a CQ notification again. So if the
device is torn down before that notification arrives, we leak the QAOB.

Just have the driver take care of it, and simply pass down a QAOB if
they want a TX with async-completion capability. For a buffer in PENDING
state that requires the QAOB for final completion, qeth can now also try
to recycle the buffer's QAOB rather than unconditionally freeing it.

This also eliminates the qdio_outbuf_state array, which was only needed
to transfer the aob->user1 tag from the driver to the qdio layer.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Acked-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/qdio.h
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_main.c
drivers/s390/cio/qdio_setup.c
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c
drivers/s390/scsi/zfcp_qdio.c