Message ID | 20220304141141.32767-1-seiden@linux.ibm.com |
---|---|
Headers | show |
Series | s390: Ultravisor device | expand |
On 3/4/22 15:11, Steffen Eiden wrote: > This series adds an Ultravisor(UV) device letting the userspace send some > Ultravisor calls to the UV. Currently two calls are supported. > Query Ultravisor Information (QUI) and > Receive Attestation Measurement (Attest[ation]). > > The UV device is implemented as a miscdevice accepting only IOCTLs. > The IOCTL cmd specifies the UV call and the IOCTL arg the request > and response data depending on the UV call. > The device driver writes the UV response in the ioctl argument data. > > The 'uvdevice' does no checks on the request beside faulty userspace > addresses, if sizes are in a sane range before allocating in kernel space, > and other tests that prevent the system from corruption. > Especially, no checks are made, that will be performed by the UV anyway > (E.g. 'invalid command' in case of attestation on unsupported hardware). > These errors are reported back to Userspace using the UV return code > field. > > The first two patches introduce the new device as a module configured to be > compiled directly into the kernel (y) similar to the s390 SCLP and CHSH > miscdevice modules. Patch 3&4 introduce Kselftests which verify error > paths of the ioctl. Please fixup the commit message in the first patch and then push patches #1 and #3 to devel so we get CI coverage. For now I'd opt to not include the qui patches but please put them on a branch. They might prove to be useful at a later time. > > v2->v3: > The main change is that QUI is now introduced after Attestation as we > might not want pick it. Also the Kselftest patch is splitted into > Attestation and QUI so that they can be picked without requiring > QUI support of the uvdevice. > > * dropped the Kconfig dependency > * reorganized the series: > - Patch 1 now covers the introduction of the uvdevice and Attestation > - Patch 2 adds QUI to uvdevice > - Patch 3/4 add Kselftests for Attestation and QUI > * fixed some nits > * added some comments > > v1->v2: > * ioctl returns -ENOIOCTLCMD in case of a invalid ioctl command > * streamlined reserved field test > * default Kconfig is y instead of m > * improved selftest documentation > > Steffen Eiden (4): > drivers/s390/char: Add Ultravisor io device > drivers/s390/char: Add Query Ultravisor Information to uvdevice > selftests: drivers/s390x: Add uvdevice tests > selftests: drivers/s390x: Add uvdevice QUI tests > > MAINTAINERS | 3 + > arch/s390/include/asm/uv.h | 23 +- > arch/s390/include/uapi/asm/uvdevice.h | 53 +++ > drivers/s390/char/Kconfig | 10 + > drivers/s390/char/Makefile | 1 + > drivers/s390/char/uvdevice.c | 320 ++++++++++++++++++ > tools/testing/selftests/Makefile | 1 + > tools/testing/selftests/drivers/.gitignore | 1 + > .../selftests/drivers/s390x/uvdevice/Makefile | 22 ++ > .../selftests/drivers/s390x/uvdevice/config | 1 + > .../drivers/s390x/uvdevice/test_uvdevice.c | 281 +++++++++++++++ > 11 files changed, 715 insertions(+), 1 deletion(-) > create mode 100644 arch/s390/include/uapi/asm/uvdevice.h > create mode 100644 drivers/s390/char/uvdevice.c > create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/Makefile > create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/config > create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c >