vfio/ccw: refactor the idaw counter
authorEric Farman <farman@linux.ibm.com>
Mon, 31 Oct 2022 18:12:54 +0000 (19:12 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 9 Jan 2023 13:34:08 +0000 (14:34 +0100)
commitb21f9cb1124e9fee33dd3c07108aabde060b6ef8
tree42c6fb8fc567531af97ca557efa95fde7f6ffbb7
parent61783394f4eb3a8a0944005ea2761c011788a9c3
vfio/ccw: refactor the idaw counter

The rules of an IDAW are fairly simple: Each one can move no
more than a defined amount of data, must not cross the
boundary defined by that length, and must be aligned to that
length as well. The first IDAW in a list is special, in that
it does not need to adhere to that alignment, but the other
rules still apply. Thus, by reading the first IDAW in a list,
the number of IDAWs that will comprise a data transfer of a
particular size can be calculated.

Let's factor out the reading of that first IDAW with the
logic that calculates the length of the list, to simplify
the rest of the routine that handles the individual IDAWs.

Signed-off-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/cio/vfio_ccw_cp.c