Google luky.org euqset.org

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

Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl


At Wed, 12 Jan 2005 14:58:19 -0800,
Greg KH wrote:
> 
> On Wed, Jan 12, 2005 at 03:13:09PM -0700, Andreas Dilger wrote:
> > On Jan 12, 2005  13:29 -0800, Greg KH wrote:
> > > On Wed, Jan 12, 2005 at 10:36:06PM +0200, Michael S. Tsirkin wrote:
> > > > To make life bearable for out-of kernel modules, the following patch
> > > > adds 2 macros so that existance of unlocked_ioctl and compat_ioctl
> > > > can be easily detected.
> > > >  
> > > > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxxxxxx>
> > > > 
> > > > diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
> > > > --- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
> > > > +++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
> > > > @@ -907,6 +907,12 @@ typedef struct {
> > > >  
> > > >  typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
> > > >  
> > > > +/* These macros are for out of kernel modules to test that
> > > > + * the kernel supports the unlocked_ioctl and compat_ioctl
> > > > + * fields in struct file_operations. */
> > > > +#define HAVE_COMPAT_IOCTL 1
> > > > +#define HAVE_UNLOCKED_IOCTL 1
> > > 
> > > No, we do not do that in the kernel today, and I'm pretty sure we don't
> > > want to start doing it (it would get _huge_ very quickly...)
> > > 
> > > Please don't apply this.  Remember, out-of-the-tree modules are on their
> > > own.
> > 
> > Gee, thanks.  It's not like some out-of-tree code doesn't _want_ to go
> > into the core kernel, but usually the time between some code being
> > developed and when it is included is lengthy (i.e. "this feature won't
> > be accepted until lots of people use it").
> 
> I understand that, but for stuff like that, isn't it easier to just test
> for VERSION?  Or use autoconf?
> 
> > For code that needs to handle
> > multiple kernel versions this makes life far easier and doesn't actually
> > hurt anything.  It used to be that you could use LINUX_VERSION_CODE for
> > this kind of check, but that breaks down quickly with vendor kernels and
> > the long development cycle.
> 
> What long development cycle?  The out-of-the-tree stuff?  Or the kernel
> development stuff?

I guess the latter.  Imagine that the stuff already exists in mm tree 
but the merge to the maintree is delayed.  In this case,
KERNEL_VERSION check doesn't work reliably.  But, it's a rare case,
AFAIK.

> My main issue is when would we ever be able to remove such HAS macros?

Here I agree with Greg.  It'll be difficult to remove it once after
added.  Nobody knows whether the external stuff still refers to it or
not...

> And who specifically will be testing for these HAVE_COMPAT_IOCTL and
> HAVE_UNLOCKED_IOCTL macros?  Will that code make it into the main tree
> ever?  If not, why not?

ALSA, for example, still offers for 2.2, 2.4 and older 2.6 kernels.
So it requires checks for such kernel API changes.  I would do this
via autoconf without problem if HAS_* isn't introduced, though.


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


$B$3$N>pJs$,$"$J$?$NC5$7$F$$?$b$N$+$I$&$+A*Br$7$F$/$@$5$!#(B
yes/$B$^$5$K$3$l$@!*(B   no/$B0c$&$J$!(B   part/$B0lIt8+$D$+$C$?(B   try/$B$3$l$G;n$7$F$_$k(B

$B$"$J$?$,C5$7$F$$?>pJs$O$I$N$h$&$J$3$H$+!"$4<+M3$K5-F~2<$5$!#FC$K!V$^$5$K$3$l$@!*!W$H8@$&>l9g$O5-F~$r$*4j$$7$^$9!#(B
$BNc(B:$B!VJ#?t$N%^%7%s$+$i(BCATV$B7PM3$G(Bipmasquerade$B$rMxMQ$7$F(BWeb$B$r;2>H$7$?$>l9g$N@_Dj$K$D$$F!W(B
References: