2007-10-12 12:08:36

by Robert P. J. Day

[permalink] [raw]
Subject: what is the rationale for "TAINT_USER"?


i can see what the theoretical purpose for it is here:

http://kerneltrap.org/node/6656

but it's not clear how it can possibly be set from userland given
that:

$ grep -r TAINT_USER *
include/linux/kernel.h:#define TAINT_USER (1<<6)
kernel/panic.c: tainted & TAINT_USER ? 'U' : ' ',
$

am i missing something screamingly obvious?

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================


2007-10-12 12:22:54

by Robert P. J. Day

[permalink] [raw]
Subject: Re: what is the rationale for "TAINT_USER"?

On Fri, 12 Oct 2007, Robert P. J. Day wrote:

>
> i can see what the theoretical purpose for it is here:
>
> http://kerneltrap.org/node/6656
>
> but it's not clear how it can possibly be set from userland given
> that:
>
> $ grep -r TAINT_USER *
> include/linux/kernel.h:#define TAINT_USER (1<<6)
> kernel/panic.c: tainted & TAINT_USER ? 'U' : ' ',
> $
>
> am i missing something screamingly obvious?

whoops, never mind -- if i read correctly, that particular flag bit
must be set *explicitly* when writing to /proc/sys/kernel/tainted. i
originally thought it would be set by kernel code simply by the act of
writing to /proc/sys/kernel/tainted, and i couldn't see where that was
happening. carry on.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-10-12 12:24:46

by Nadia Derbey

[permalink] [raw]
Subject: Re: what is the rationale for "TAINT_USER"?

Robert P. J. Day wrote:
> i can see what the theoretical purpose for it is here:
>
> http://kerneltrap.org/node/6656
>
> but it's not clear how it can possibly be set from userland given
> that:
>
> $ grep -r TAINT_USER *
> include/linux/kernel.h:#define TAINT_USER (1<<6)
> kernel/panic.c: tainted & TAINT_USER ? 'U' : ' ',
> $
>
> am i missing something screamingly obvious?
>
> rday

#ifdef CONFIG_PROC_SYSCTL
{
.ctl_name = KERN_TAINTED,
.procname = "tainted",
.data = &tainted,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec_taint,
},
#endif


Regards,
Nadia

2007-10-12 12:27:19

by Björn Steinbrink

[permalink] [raw]
Subject: Re: what is the rationale for "TAINT_USER"?

On 2007.10.12 08:04:20 -0400, Robert P. J. Day wrote:
>
> i can see what the theoretical purpose for it is here:
>
> http://kerneltrap.org/node/6656
>
> but it's not clear how it can possibly be set from userland given
> that:
>
> $ grep -r TAINT_USER *
> include/linux/kernel.h:#define TAINT_USER (1<<6)
> kernel/panic.c: tainted & TAINT_USER ? 'U' : ' ',
> $
>
> am i missing something screamingly obvious?

Grepping for "tainted" leads me to:

echo 32 > /proc/sys/kernel/tainted

Bj?rn

2007-10-12 12:41:28

by Robert P. J. Day

[permalink] [raw]
Subject: Re: what is the rationale for "TAINT_USER"?

On Fri, 12 Oct 2007, Bj?rn Steinbrink wrote:

> On 2007.10.12 08:04:20 -0400, Robert P. J. Day wrote:
> >
> > i can see what the theoretical purpose for it is here:
> >
> > http://kerneltrap.org/node/6656
> >
> > but it's not clear how it can possibly be set from userland given
> > that:
> >
> > $ grep -r TAINT_USER *
> > include/linux/kernel.h:#define TAINT_USER (1<<6)
> > kernel/panic.c: tainted & TAINT_USER ? 'U' : ' ',
> > $
> >
> > am i missing something screamingly obvious?
>
> Grepping for "tainted" leads me to:
>
> echo 32 > /proc/sys/kernel/tainted

???. i have no idea what you were grepping through to find that
phrase, but TAINT_USER would seem to be equivalent to echo 64, not
echo 32, anyway, no?

in any event, as i posted in a followup, i'm assuming that that
particular bit is meant to be set explicitly from user space using
something like:

# echo 64 > /proc/sys/kernel/tainted

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-10-12 12:48:16

by Björn Steinbrink

[permalink] [raw]
Subject: Re: what is the rationale for "TAINT_USER"?

On 2007.10.12 08:37:04 -0400, Robert P. J. Day wrote:
> On Fri, 12 Oct 2007, Bj?rn Steinbrink wrote:
>
> > On 2007.10.12 08:04:20 -0400, Robert P. J. Day wrote:
> > >
> > > i can see what the theoretical purpose for it is here:
> > >
> > > http://kerneltrap.org/node/6656
> > >
> > > but it's not clear how it can possibly be set from userland given
> > > that:
> > >
> > > $ grep -r TAINT_USER *
> > > include/linux/kernel.h:#define TAINT_USER (1<<6)
> > > kernel/panic.c: tainted & TAINT_USER ? 'U' : ' ',
> > > $
> > >
> > > am i missing something screamingly obvious?
> >
> > Grepping for "tainted" leads me to:
> >
> > echo 32 > /proc/sys/kernel/tainted
>
> ???. i have no idea what you were grepping through to find that
> phrase, but TAINT_USER would seem to be equivalent to echo 64, not
> echo 32, anyway, no?

Oops, yeah, 64... And it didn't lead me to the exact phrase, but the
sysctl handler, which (implicitly) led me to that command. Sorry for
the confusion.

Bj?rn