Re: [PATCH v6 00/28] NT synchronization primitive driver
From: Arnd Bergmann
Date: Mon Dec 09 2024 - 15:25:13 EST
On Mon, Dec 9, 2024, at 19:58, Elizabeth Figura wrote:
> == Previous versions ==
>
> No changes were made from v5 other than rebasing on top of the 6.13-rc1
> char-misc-next tree.
>
> I would like to repeat a question from the last round of review, though. Two
> changes were suggested related to API design, which I did not make because the
> APIs in question were already released in upstream Linux. However, the driver is
> also completely nonfunctional and hidden behind BROKEN, so would this be
> acceptable anyway? The changes in question are:
If it was impossible to use the driver, there is no regression.
I feel the entire point of marking it as broken was to be able
to add that type of change.
> * rename NTSYNC_IOC_SEM_POST to NTSYNC_IOC_SEM_RELEASE (matching the NT
> terminology instead of POSIX),
No objections my me on either name.
> * change object creation ioctls to return the fds directly in the return value
> instead of through the args struct. I would also still appreciate a
> clarification on the advice in [1], which is why I didn't do this in the first
> place.
>
> [1] https://docs.kernel.org/driver-api/ioctl.html#return-code
The git log tells me that I have written that, but I don't remember
why I put that in, maybe someone else suggested it.
My feeling right now is that returning a file descriptor number
as a small positive integer from the ioctl() return code makes
sense. On the other hand, returning pointers, negative signed
integers or large (> 32bit) 'unsigned long' values can cause
a number of issues, so I would avoid all those the same way we
discourage passing those integers as a literal 'arg' into ioctl()
instead of going through a pointer.
So either way, this looks good to me. I also looked through the
series again to double-check that you avoid the usual common
problems we list in Documentation/driver-api/ioctl.rst, and
I found this is all fine.
So with or without the two changes you listed:
Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
Arnd