Re: [PATCH 04/39] ALSA: seq: copy ioctl data from user space to kernel stack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Clemens,

On Aug 7 2016 19:15, Clemens Ladisch wrote:
> Takashi Sakamoto wrote:
>> Data from user space is once copied to kernel stack, then operated and
>> copied to user space, in a consistent manner. This manner forces all ioctl
>> operations to copy the data from/to user space, even if it's read-only or
>> write-only. Thus, it has an overhead for simpler ioctl commands.
> 
> The ioctl code itself already contains information about the direction
> and size of the data to be copied (and in theory, these values are
> correct).  See dispatch_ioctl() in drivers/firewire/core-cdev.c for an
> example.

A nice idea.

_IOC_SIZE macro pick up 13 or 14 bits (architecture-dependent) in ioctl
command, which represents the size of argument. In my patch, the size of
'union ioctl_arg' is 188 (x86/x32) or 192 (x86_64) and there's enough
rest of the size field. So we can pick up the size from ioctl command by
the macro because the size represents the maximum bytes of argument for
all of sequencer ioctls.

I'll post revised version tomorrow. Thanks ;)


Takashi Sakamoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux