s390 updates for the 5.12 merge window

- Convert to using the generic entry infrastructure.

- Add vdso time namespace support.

- Switch s390 and alpha to 64-bit ino_t. As discussed here
  lkml.kernel.org/r/YCV7QiyoweJwvN+m@osiris

- Get rid of expensive stck (store clock) usages where possible. Utilize
  cpu alternatives to patch stckf when supported.

- Make tod_clock usage less error prone by converting it to a union and
  rework code which is using it.

- Machine check handler fixes and cleanups.

- Drop couple of minor inline asm optimizations to fix clang build.

- Default configs changes notably to make libvirt happy.

- Various changes to rework and improve qdio code.

- Other small various fixes and improvements all over the code.
s390/qdio: remove 'merge_pending' mechanism

For non-QEBSM devices, get_buf_states() merges PENDING and EMPTY buffers
into a single group of finished buffers. To allow the upper-layer driver
to differentiate between the two states, qdio_check_pending() looks at
each buffer's state again and sets the sbal_state flag to
QDIO_OUTBUF_STATE_FLAG_PENDING accordingly.

So effectively we're spending overhead on _every_ Output Queue
inspection, just to avoid some additional TX completion calls in case
a group of buffers has completed with mixed EMPTY / PENDING state.
Given that PENDING buffers should rarely occur, this is a bad trade-off.
In particular so as the additional checks in get_buf_states() affect
_all_ device types (even those that don't use the PENDING state).

Rip it all out, and just report the PENDING completions separately as
we already do for QEBSM devices.

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>
3 files changed