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

Janosch Frank
2022-05-17T12:41:52Z

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@linux.ibm.com>
>>> Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
>>
>> 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.
>>> + *
>>