From: Andrew Morton <akpm@linux-foundation.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
Rusty Russell <rusty@rustcorp.com.au>,
linux-kernel@vger.kernel.org, Jean Delvare <khali@linux-fr.org>,
Jon Mason <jon.mason@intel.com>
Subject: Re: [PATCH] [RFC] Taint the kernel for unsafe module options
Date: Wed, 5 Mar 2014 12:32:50 -0800 [thread overview]
Message-ID: <20140305123250.8caa9c6abc2b40d812bbb1b2@linux-foundation.org> (raw)
In-Reply-To: <1394011994-30604-1-git-send-email-daniel.vetter@ffwll.ch>
On Wed, 5 Mar 2014 10:33:14 +0100 Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> Users just love to set random piles of options since surely enabling
> all the experimental stuff helps. Later on we get bug reports because
> it all fell apart.
>
> Even more fun when it's labelled a regression when some change only
> just made the feature possible (e.g. stolen memory fixes suddenly
> making fbc possible).
>
> Make it clear that users are playing with fire here. In drm/i915 all
> these options follow the same pattern of using -1 as the per-machine
> default, and any other value being used for force the parameter.
>
> Adding a pile of cc's to solicit input and figure out whether this
> would be generally useful - this quick rfc is just for drm/i915.
Seems harmless and potentially useful to others so yes, I'd vote for
putting it in core kernel.
However this only handles integers. Will we end up needed great gobs
of new code to detect unsafe setting of u8's, strings, etc?
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
The patch adds lots of trailing whitespace. checkpatch is ->thattaway.
> @@ -50,7 +50,46 @@ struct i915_params i915 __read_mostly = {
> .disable_display = 0,
> };
>
> -module_param_named(modeset, i915.modeset, int, 0400);
> +int param_set_unsafe_int(const char *val, const struct kernel_param *kp)
> +{
> + long l;
> + int ret;
> +
> + ret = kstrtol(val, 0, &l);
> + if (ret < 0 || ((int)l != l))
> + return ret < 0 ? ret : -EINVAL;
That's a bit screwy. Simpler:
if (ret < 0)
return ret;
if ((int)l != l)
return -EINVAL;
> + /* Taint if userspace overrides the kernel defaults. */
> + if (l != -1) {
> + printk(KERN_WARNING "Setting dangerous option %s to non-default value!\n",
> + kp->name);
pr_warn() is nicer.
> + add_taint(TAINT_USER, LOCKDEP_STILL_OK);
> + }
> +
> + *((int *)kp->arg) = l;
> + return 0;
> +}
>
> ...
>
next prev parent reply other threads:[~2014-03-05 20:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-05 9:33 [PATCH] [RFC] Taint the kernel for unsafe module options Daniel Vetter
2014-03-05 20:32 ` Andrew Morton [this message]
2014-03-05 21:00 ` Daniel Vetter
2014-03-05 21:03 ` Daniel Vetter
2014-03-06 0:49 ` Rusty Russell
2014-03-06 7:58 ` Daniel Vetter
2014-03-07 3:28 ` Rusty Russell
2014-03-07 8:05 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140305123250.8caa9c6abc2b40d812bbb1b2@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jon.mason@intel.com \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=zhong@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox