Re: [PATCH v4 1/2] drivers/s390/char: Add Ultravisor io device

From: Janosch Frank
Date: Tue May 17 2022 - 08:41:52 EST


On 5/17/22 10:42, Steffen Eiden wrote:


On 5/17/22 10:38, Janosch Frank wrote:
On 5/10/22 16:47, Steffen Eiden wrote:
This patch adds a new miscdevice to expose some Ultravisor functions
to userspace. Userspace can send IOCTLs to the uvdevice that will then
emit a corresponding Ultravisor Call and hands the result over to
userspace. The uvdevice is available if the Ultravisor Call facility is
present.
Userspace can call the Retrieve Attestation Measurement
Ultravisor Call using IOCTLs on the uvdevice.

The uvdevice will do some sanity checks first.
Then, copy the request data to kernel space, build the UVCB,
perform the UV call, and copy the result back to userspace.

Signed-off-by: Steffen Eiden <seiden@xxxxxxxxxxxxx>
Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx>

I'd like to pick this if I'm allowed to fix the two white space problems
below.
I am fine with that.

Thanks, picked


Thank you.


---
  MAINTAINERS                           |   2 +
  arch/s390/include/asm/uv.h            |  23 ++-
  arch/s390/include/uapi/asm/uvdevice.h |  51 +++++
  drivers/s390/char/Kconfig             |  10 +
  drivers/s390/char/Makefile            |   1 +
  drivers/s390/char/uvdevice.c          | 264 ++++++++++++++++++++++++++
  6 files changed, 350 insertions(+), 1 deletion(-)
  create mode 100644 arch/s390/include/uapi/asm/uvdevice.h
  create mode 100644 drivers/s390/char/uvdevice.c


+#endif  /* __S390_ASM_UVDEVICE_H */

There are two spaces between the "endif" and the "/"

diff --git a/drivers/s390/char/Kconfig b/drivers/s390/char/Kconfig
index 6cc4b19acf85..e9b9902abbaf 100644
--- a/drivers/s390/char/Kconfig
+++ b/drivers/s390/char/Kconfig
@@ -100,6 +100,16 @@ config SCLP_OFB
        This option enables the Open-for-Business interface to the s390
        Service Element.
[...]
+ * uvio_attestation() does a  Retrieve Attestation Measurement
Ultravisor Call.

Double space

+ * It verifies that the given userspace addresses are valid and
request sizes
+ * are sane. Every other check is made by the Ultravisor (UV) and
won't result
+ * in a negative return value. It copies the input to kernelspace,
builds the
+ * request, sends the UV-call, and copies the result to userspace.
+ *