Re: [PATCH 4/4] tracing: fix splice return too large

From: Ingo Molnar
Date: Wed Apr 08 2009 - 05:55:33 EST



* Lai Jiangshan <laijs@xxxxxxxxxxxxxx> wrote:

> Ingo Molnar wrote:
> > * Lai Jiangshan <laijs@xxxxxxxxxxxxxx> wrote:
> >
> >> - for (i = 0; i < PIPE_BUFFERS && len; i++, len -= size) {
> >> + if (*ppos & (PAGE_SIZE - 1)) {
> >> + WARN_ONCE(1, "Ftrace: previous read must page-align\n");
> >> + return -EINVAL;
> >> + }
> >> +
> >> + if (len & (PAGE_SIZE - 1)) {
> >> + WARN_ONCE(1, "Ftrace: splice_read should page-align\n");
> >> + if (len < PAGE_SIZE)
> >> + return -EINVAL;
> >> + len &= PAGE_MASK;
> >> + }
> >
> > Hm, the fix looks good, but is it a good idea to allow the
> > triggering of this message from user-space?
> >
>
> But it is only triggered once.
>
> If user get content from trace_pipe_raw with non-page-align, the
> content is garbage. It's wasting, the kernel disallows it. This
> message tell user why he read failed.
>
> These 4 patches make trace_pipe_raw more robustious and consistent
> (read by read(2) and splice). I focus on handling raw ftrace data
> in userspace, these raw ftrace data should be trustiness.

Ok, agreed.

i've applied these four fixes from you to tip:tracing/splice,
thanks. Steve: i think they are tracing/urgent material - do you
agree?

Ingo
--
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/