On Monday, 9 December 2024 14:24:36 CST Arnd Bergmann wrote:
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.
Makes sense. [I figured that the BROKEN was just there to prevent anyone from trying to use a half-finished driver, and the point of committing a half-finished driver was just to reduce the number of patches that needed to be resent.]
I'll make these changes and resend.
- 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.
Ah, that makes sense to me, thanks.