lkml.org 
[lkml]   [2004]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 2.6.8-rc2-mm1
Hi,

On 07/29/04 01:24, Johannes Stezenbach wrote:
> On Wed, Jul 28, 2004 at 11:44:23PM +0100, viro@parcelfarce.linux.theplanet.co.uk wrote:
>
>>On Thu, Jul 29, 2004 at 12:24:55AM +0200, Johannes Stezenbach wrote:
>>
>>>Signed-off-by: Johannes Stezenbach <js@convergence.de>
>>>
>>>--- linux-2.6.8-rc2/drivers/media/dvb/dvb-core/dvb_functions.c.orig 2004-07-29 00:19:50.000000000 +0200
>>>+++ linux-2.6.8-rc2/drivers/media/dvb/dvb-core/dvb_functions.c 2004-07-29 00:20:05.000000000 +0200
>>>@@ -36,7 +36,7 @@ int dvb_usercopy(struct inode *inode, st
>>> /* Copy arguments into temp kernel buffer */
>>> switch (_IOC_DIR(cmd)) {
>>> case _IOC_NONE:
>>>- parg = NULL;
>>>+ parg = (void *) arg;
>>
>>Mind explaining why it is the right thing to do? You are creating a kernel
>>pointer out of value passed to you by userland and feed it to a function
>>that expects a kernel pointer. Which is an invitation for trouble - if
>>it ends up dereferenced, we are screwed and won't notice that.
>
>
> This is a hack introduced by someone years ago. The "pointer" is
> actually an integer argument, e.g. in include/linux/dvb/audio.h:
>
> #define AUDIO_SET_MUTE _IO('o', 6)
>
> actually takes an integer argument (!0 mute, 0 unmute), so one can write
>
> if (ioctl(fd, AUDIO_SET_MUTE, 1) == -1)
> perror("mute");
>
> It is unusual (maybe even wrong?), but we cannot change it without
> losing binary API compatibility. However, I see that sparse might
> flag this as a possible bug :-(

Is this convenient trick considered harmful?
Or is it a creative way of using ioctls?

We're currently using this stuff in the overhauled DVB v4 API, too. So
before we finally establish the DVB v4 API, I'd like to know if this is
a no-no.

Comments?

CU
Michael.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [W:0.077 / U:0.400 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site