All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tracing: Fix unmapping loop in tracing_mark_write
@ 2014-12-18  2:50 Vikram Mulukutla
  2015-02-09 23:33 ` Stephen Boyd
  0 siblings, 1 reply; 3+ messages in thread
From: Vikram Mulukutla @ 2014-12-18  2:50 UTC (permalink / raw)
  To: Steven Rostedt, Ingo Molnar
  Cc: linux-kernel, linux-arm-msm, Lime Yang, Stephen Boyd, Vikram Mulukutla

Commit 6edb2a8a385f0cdef51dae37ff23e74d76d8a6ce introduced
an array map_pages that contains the addresses returned by
kmap_atomic. However, when unmapping those pages, map_pages[0]
is unmapped before map_pages[1], breaking the nesting requirement
as specified in the documentation for kmap_atomic/kunmap_atomic.

This was caught by the highmem debug code present in kunmap_atomic.
Fix the loop to do the unmapping properly.

Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Reported-by: Lime Yang <limey@codeaurora.org>
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
---
 kernel/trace/trace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index ab76b7b..bceed34 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4931,7 +4931,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf,
 	*fpos += written;
 
  out_unlock:
-	for (i = 0; i < nr_pages; i++){
+	for (i = nr_pages - 1; i >= 0; i--) {
 		kunmap_atomic(map_page[i]);
 		put_page(pages[i]);
 	}
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] tracing: Fix unmapping loop in tracing_mark_write
  2014-12-18  2:50 [PATCH] tracing: Fix unmapping loop in tracing_mark_write Vikram Mulukutla
@ 2015-02-09 23:33 ` Stephen Boyd
  2015-02-09 23:45   ` Steven Rostedt
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Boyd @ 2015-02-09 23:33 UTC (permalink / raw)
  To: Vikram Mulukutla, Steven Rostedt, Ingo Molnar
  Cc: linux-kernel, linux-arm-msm, Lime Yang

On 12/17/14 18:50, Vikram Mulukutla wrote:
> Commit 6edb2a8a385f0cdef51dae37ff23e74d76d8a6ce introduced
> an array map_pages that contains the addresses returned by
> kmap_atomic. However, when unmapping those pages, map_pages[0]
> is unmapped before map_pages[1], breaking the nesting requirement
> as specified in the documentation for kmap_atomic/kunmap_atomic.
>
> This was caught by the highmem debug code present in kunmap_atomic.
> Fix the loop to do the unmapping properly.
>
> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
> Reported-by: Lime Yang <limey@codeaurora.org>
> Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
> ---

ping? What happened to this patch?

>  kernel/trace/trace.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index ab76b7b..bceed34 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -4931,7 +4931,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf,
>  	*fpos += written;
>  
>   out_unlock:
> -	for (i = 0; i < nr_pages; i++){
> +	for (i = nr_pages - 1; i >= 0; i--) {
>  		kunmap_atomic(map_page[i]);
>  		put_page(pages[i]);
>  	}


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] tracing: Fix unmapping loop in tracing_mark_write
  2015-02-09 23:33 ` Stephen Boyd
@ 2015-02-09 23:45   ` Steven Rostedt
  0 siblings, 0 replies; 3+ messages in thread
From: Steven Rostedt @ 2015-02-09 23:45 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Vikram Mulukutla, Ingo Molnar, linux-kernel, linux-arm-msm, Lime Yang

On Mon, 09 Feb 2015 15:33:58 -0800
Stephen Boyd <sboyd@codeaurora.org> wrote:

> On 12/17/14 18:50, Vikram Mulukutla wrote:
> > Commit 6edb2a8a385f0cdef51dae37ff23e74d76d8a6ce introduced
> > an array map_pages that contains the addresses returned by
> > kmap_atomic. However, when unmapping those pages, map_pages[0]
> > is unmapped before map_pages[1], breaking the nesting requirement
> > as specified in the documentation for kmap_atomic/kunmap_atomic.
> >
> > This was caught by the highmem debug code present in kunmap_atomic.
> > Fix the loop to do the unmapping properly.
> >
> > Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
> > Reported-by: Lime Yang <limey@codeaurora.org>
> > Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
> > ---
> 
> ping? What happened to this patch?

Seems to have been lost in my INBOX.

Thanks for pointing it out. I'll add it to my 3.20 queue. Looks like it
should be marked for stable as well. As far back as 3.5 as I can tell.

-- Steve

> 
> >  kernel/trace/trace.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > index ab76b7b..bceed34 100644
> > --- a/kernel/trace/trace.c
> > +++ b/kernel/trace/trace.c
> > @@ -4931,7 +4931,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf,
> >  	*fpos += written;
> >  
> >   out_unlock:
> > -	for (i = 0; i < nr_pages; i++){
> > +	for (i = nr_pages - 1; i >= 0; i--) {
> >  		kunmap_atomic(map_page[i]);
> >  		put_page(pages[i]);
> >  	}
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-02-09 23:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-18  2:50 [PATCH] tracing: Fix unmapping loop in tracing_mark_write Vikram Mulukutla
2015-02-09 23:33 ` Stephen Boyd
2015-02-09 23:45   ` Steven Rostedt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.