2009-09-22 06:29:24

by Robert P. J. Day

[permalink] [raw]
Subject: best practices: which "uaccess.h" should one include?


philosophically, which is the "correct" uaccess.h header file to
include in kernel code -- <linux/uaccess.h> or <asm/uaccess.h>? the
first explicitly includes the second so that's a safe choice but,
generally, there's been a tendency to shift toward including the
"linux" header files. opinion? there's quite a mixture under the
drivers/ directory.

rday
--

========================================================================
Robert P. J. Day Waterloo, Ontario, CANADA

Linux Consulting, Training and Annoying Kernel Pedantry.

Web page: http://crashcourse.ca
Twitter: http://twitter.com/rpjday
========================================================================


2009-09-22 12:09:09

by Arnd Bergmann

[permalink] [raw]
Subject: Re: best practices: which "uaccess.h" should one include?

On Tuesday 22 September 2009, Robert P. J. Day wrote:
> philosophically, which is the "correct" uaccess.h header file to
> include in kernel code -- <linux/uaccess.h> or <asm/uaccess.h>? the
> first explicitly includes the second so that's a safe choice but,
> generally, there's been a tendency to shift toward including the
> "linux" header files. opinion? there's quite a mixture under the
> drivers/ directory.

The preferred one is linux/uaccess.h, the same is true for many
headers that traditionally only existed in asm/.

There are some headers with explicit #warning or #error messages
when they are not included from linux/foo.h, e.g. spinlock_types.h,
bitops.h or rwsem.h.

Other headers include each other both ways, e.g. futex.h, which means
that you can use either one, though it might be good to move to
a common location if that doesn't cause too much churn.

Arnd <><

2009-09-22 12:37:52

by Robert P. J. Day

[permalink] [raw]
Subject: Re: best practices: which "uaccess.h" should one include?

On Tue, 22 Sep 2009, Arnd Bergmann wrote:

> On Tuesday 22 September 2009, Robert P. J. Day wrote:
> > philosophically, which is the "correct" uaccess.h header file to
> > include in kernel code -- <linux/uaccess.h> or <asm/uaccess.h>?
> > the first explicitly includes the second so that's a safe choice
> > but, generally, there's been a tendency to shift toward including
> > the "linux" header files. opinion? there's quite a mixture under
> > the drivers/ directory.
>
> The preferred one is linux/uaccess.h, the same is true for many
> headers that traditionally only existed in asm/.

i know -- i've sent in a few patches of my own to make some of those
changes. i just wanted to be clear since i'm writing a short tutorial
on kernel/user space copying and wanted to make the correct
recommendation for the header file to include.

> There are some headers with explicit #warning or #error messages
> when they are not included from linux/foo.h, e.g. spinlock_types.h,
> bitops.h or rwsem.h.

yup, i've seen those, too. thanks.

rday
--

========================================================================
Robert P. J. Day Waterloo, Ontario, CANADA

Linux Consulting, Training and Annoying Kernel Pedantry.

Web page: http://crashcourse.ca
Twitter: http://twitter.com/rpjday
========================================================================