On Mon, Sep 24, 2018 at 10:35 PM Jason Gunthorpe [off-list ref] wrote:
On Mon, Sep 24, 2018 at 10:18:52PM +0200, Arnd Bergmann wrote:
quoted
On Tue, Sep 18, 2018 at 7:59 PM Jason Gunthorpe [off-list ref] wrote:
quoted
On Tue, Sep 18, 2018 at 10:51:08AM -0700, Darren Hart wrote:
quoted
On Fri, Sep 14, 2018 at 09:57:48PM +0100, Al Viro wrote:
quoted
On Fri, Sep 14, 2018 at 01:35:06PM -0700, Darren Hart wrote:
We already do this inside of some subsystems, notably drivers/media/,
and it simplifies the implementation of the ioctl handler function
significantly. We obviously cannot do this in general, both because of
traditional drivers that have 16-bit command codes (drivers/tty and others)
and also because of drivers that by accident defined the commands
incorrectly and use the wrong type or the wrong direction in the
definition.
That could work well, but the first idea could be done globally and
mechanically, while this would require very careful per-driver
investigation.
Particularly if the core code has worse performance.. ie due to
kmalloc calls or something.
I think it would make more sense to start by having the core do the
case to __user and then add another entry point to have the core do
the copy_from_user, and so on.
Having six separate callback pointers to implement a single
system call seems a bit excessive though.
Arnd