Re: [PATCH 1/1] UIO: Add a write() function to enable/disable interrupts

Tom Spink
2008-05-23T11:48:58Z

2008/5/23 Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>:
> Hello Tom,

Hi Uwe,

> Tom Spink wrote:
>> The added benefit is that the code becomes less complex, as you don't
>> have to check buffer sizes and copy the integer from userspace.
> AFAIK this is wrong. You need to copy the integer from userspace in
> uio_ioctl. Actually it's a value coming from user space, so you need to
> do it somewhere.

Not really in this case. It's not a *pointer* to a value in
userspace, so you don't need to copy anything. If it was being used
to point to a memory location holding a value, then yes, it would need
to be copied across. But in this case, it's just being used to pass
across 1 or 0.

For example, look at the drivers/char/tty_ioctl.c file, and see how
they use arg as a simple value. arg doesn't have to be a pointer to
userspace.

> Best regards
> Uwe

--
Tom Spink