* [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack @ 2020-11-18 3:53 qiang.zhang 2020-11-19 21:49 ` Paul E. McKenney 0 siblings, 1 reply; 10+ messages in thread From: qiang.zhang @ 2020-11-18 3:53 UTC (permalink / raw) To: paulmck, josh, rostedt; +Cc: joel, rcu, linux-kernel From: Zqiang <qiang.zhang@windriver.com> Add kasan_record_aux_stack function for kvfree_call_rcu function to record call stacks. Signed-off-by: Zqiang <qiang.zhang@windriver.com> --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index da3414522285..a252b2f0208d 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) success = true; goto unlock_return; } - + kasan_record_aux_stack(ptr); success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); if (!success) { run_page_cache_worker(krcp); -- 2.17.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-18 3:53 [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack qiang.zhang @ 2020-11-19 21:49 ` Paul E. McKenney 2020-11-20 8:51 ` Dmitry Vyukov 2020-11-20 11:59 ` Uladzislau Rezki 0 siblings, 2 replies; 10+ messages in thread From: Paul E. McKenney @ 2020-11-19 21:49 UTC (permalink / raw) To: qiang.zhang; +Cc: josh, rostedt, joel, rcu, linux-kernel, kasan-dev, urezki On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > From: Zqiang <qiang.zhang@windriver.com> > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > record call stacks. > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> Thank you, but this does not apply on the "dev" branch of the -rcu tree. See file:///home/git/kernel.org/rcutodo.html for more info. Adding others on CC who might have feedback on the general approach. Thanx, Paul > --- > kernel/rcu/tree.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index da3414522285..a252b2f0208d 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > success = true; > goto unlock_return; > } > - > + kasan_record_aux_stack(ptr); > success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); > if (!success) { > run_page_cache_worker(krcp); > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-19 21:49 ` Paul E. McKenney @ 2020-11-20 8:51 ` Dmitry Vyukov 2020-11-20 14:34 ` Paul E. McKenney 2020-11-20 11:59 ` Uladzislau Rezki 1 sibling, 1 reply; 10+ messages in thread From: Dmitry Vyukov @ 2020-11-20 8:51 UTC (permalink / raw) To: Paul E. McKenney Cc: Zhang, Qiang, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev, Uladzislau Rezki On Thu, Nov 19, 2020 at 10:49 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > From: Zqiang <qiang.zhang@windriver.com> > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > record call stacks. > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > See file:///home/git/kernel.org/rcutodo.html for more info. > > Adding others on CC who might have feedback on the general approach. > > Thanx, Paul > > > --- > > kernel/rcu/tree.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > index da3414522285..a252b2f0208d 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > success = true; > > goto unlock_return; > > } > > - > > + kasan_record_aux_stack(ptr); > > success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); > > if (!success) { > > run_page_cache_worker(krcp); kvfree_call_rcu is intended to free objects, right? If so this is: Acked-by: Dmitry Vyukov <dvyukov@google.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-20 8:51 ` Dmitry Vyukov @ 2020-11-20 14:34 ` Paul E. McKenney 2020-11-20 14:44 ` Dmitry Vyukov 2020-11-20 14:45 ` Paul E. McKenney 0 siblings, 2 replies; 10+ messages in thread From: Paul E. McKenney @ 2020-11-20 14:34 UTC (permalink / raw) To: Dmitry Vyukov Cc: Zhang, Qiang, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev, Uladzislau Rezki On Fri, Nov 20, 2020 at 09:51:15AM +0100, Dmitry Vyukov wrote: > On Thu, Nov 19, 2020 at 10:49 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > > From: Zqiang <qiang.zhang@windriver.com> > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > record call stacks. > > > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > Adding others on CC who might have feedback on the general approach. > > > > Thanx, Paul > > > > > --- > > > kernel/rcu/tree.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > index da3414522285..a252b2f0208d 100644 > > > --- a/kernel/rcu/tree.c > > > +++ b/kernel/rcu/tree.c > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > success = true; > > > goto unlock_return; > > > } > > > - > > > + kasan_record_aux_stack(ptr); > > > success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); > > > if (!success) { > > > run_page_cache_worker(krcp); > > kvfree_call_rcu is intended to free objects, right? If so this is: True, but mightn't there still be RCU readers referencing this object for some time, as in up to the point that the RCU grace period ends? If so, won't adding this cause KASAN to incorrectly complain about those readers? Or am I missing something here? Thanx, Paul > Acked-by: Dmitry Vyukov <dvyukov@google.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-20 14:34 ` Paul E. McKenney @ 2020-11-20 14:44 ` Dmitry Vyukov 2020-11-20 14:54 ` Paul E. McKenney 2020-11-20 14:45 ` Paul E. McKenney 1 sibling, 1 reply; 10+ messages in thread From: Dmitry Vyukov @ 2020-11-20 14:44 UTC (permalink / raw) To: Paul E. McKenney Cc: Zhang, Qiang, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev, Uladzislau Rezki On Fri, Nov 20, 2020 at 3:34 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > On Fri, Nov 20, 2020 at 09:51:15AM +0100, Dmitry Vyukov wrote: > > On Thu, Nov 19, 2020 at 10:49 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > > > From: Zqiang <qiang.zhang@windriver.com> > > > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > > record call stacks. > > > > > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > > > Adding others on CC who might have feedback on the general approach. > > > > > > Thanx, Paul > > > > > > > --- > > > > kernel/rcu/tree.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > > index da3414522285..a252b2f0208d 100644 > > > > --- a/kernel/rcu/tree.c > > > > +++ b/kernel/rcu/tree.c > > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > > success = true; > > > > goto unlock_return; > > > > } > > > > - > > > > + kasan_record_aux_stack(ptr); > > > > success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); > > > > if (!success) { > > > > run_page_cache_worker(krcp); > > > > kvfree_call_rcu is intended to free objects, right? If so this is: > > True, but mightn't there still be RCU readers referencing this object for > some time, as in up to the point that the RCU grace period ends? If so, > won't adding this cause KASAN to incorrectly complain about those readers? > > Or am I missing something here? kvfree_call_rcu does not check anything, not poison the object for future accesses (it is also called in call_rcu which does not necessarily free the object). It just notes the current stack to provide in reports later. The problem is that the free stack is pointless for objects freed by rcu. In such cases we want call_rcu/kvfree_call_rcu stack in use-after-free reports. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-20 14:44 ` Dmitry Vyukov @ 2020-11-20 14:54 ` Paul E. McKenney 0 siblings, 0 replies; 10+ messages in thread From: Paul E. McKenney @ 2020-11-20 14:54 UTC (permalink / raw) To: Dmitry Vyukov Cc: Zhang, Qiang, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev, Uladzislau Rezki On Fri, Nov 20, 2020 at 03:44:04PM +0100, Dmitry Vyukov wrote: > On Fri, Nov 20, 2020 at 3:34 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > On Fri, Nov 20, 2020 at 09:51:15AM +0100, Dmitry Vyukov wrote: > > > On Thu, Nov 19, 2020 at 10:49 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > > > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > > > > From: Zqiang <qiang.zhang@windriver.com> > > > > > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > > > record call stacks. > > > > > > > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > > > > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > > > > > Adding others on CC who might have feedback on the general approach. > > > > > > > > Thanx, Paul > > > > > > > > > --- > > > > > kernel/rcu/tree.c | 2 +- > > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > > > index da3414522285..a252b2f0208d 100644 > > > > > --- a/kernel/rcu/tree.c > > > > > +++ b/kernel/rcu/tree.c > > > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > > > success = true; > > > > > goto unlock_return; > > > > > } > > > > > - > > > > > + kasan_record_aux_stack(ptr); > > > > > success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); > > > > > if (!success) { > > > > > run_page_cache_worker(krcp); > > > > > > kvfree_call_rcu is intended to free objects, right? If so this is: > > > > True, but mightn't there still be RCU readers referencing this object for > > some time, as in up to the point that the RCU grace period ends? If so, > > won't adding this cause KASAN to incorrectly complain about those readers? > > > > Or am I missing something here? > > kvfree_call_rcu does not check anything, not poison the object for > future accesses (it is also called in call_rcu which does not > necessarily free the object). > It just notes the current stack to provide in reports later. > The problem is that the free stack is pointless for objects freed by > rcu. In such cases we want call_rcu/kvfree_call_rcu stack in > use-after-free reports. OK, sounds good, thank you! I will take this patch with your ack and Uladzislau's reviewed-by. I had to forward-port this to -rcu brach "dev", and along the way I updated the commit log to make Dmitry's point above, so please let me know if I messed anything up. Thanx, Paul ------------------------------------------------------------------------ commit 3ce23b2df528877623ffc9c9cc2b6885eb3ae9db Author: Zqiang <qiang.zhang@windriver.com> Date: Fri Nov 20 06:53:11 2020 -0800 rcu: Record kvfree_call_rcu() call stack for KASAN This commit adds a call to kasan_record_aux_stack() in kvfree_call_rcu() in order to record the call stack of the code that caused the object to be freed. Please note that this function does not update the allocated/freed state, which is important because RCU readers might still be referencing this object. Acked-by: Dmitry Vyukov <dvyukov@google.com> Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> Signed-off-by: Zqiang <qiang.zhang@windriver.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 1d956f9..4aa7745 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3514,6 +3514,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) return; } + kasan_record_aux_stack(ptr); success = add_ptr_to_bulk_krc_lock(&krcp, &flags, ptr, !head); if (!success) { run_page_cache_worker(krcp); ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-20 14:34 ` Paul E. McKenney 2020-11-20 14:44 ` Dmitry Vyukov @ 2020-11-20 14:45 ` Paul E. McKenney 1 sibling, 0 replies; 10+ messages in thread From: Paul E. McKenney @ 2020-11-20 14:45 UTC (permalink / raw) To: Dmitry Vyukov Cc: Zhang, Qiang, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev, Uladzislau Rezki On Fri, Nov 20, 2020 at 06:34:40AM -0800, Paul E. McKenney wrote: > On Fri, Nov 20, 2020 at 09:51:15AM +0100, Dmitry Vyukov wrote: > > On Thu, Nov 19, 2020 at 10:49 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > > > From: Zqiang <qiang.zhang@windriver.com> > > > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > > record call stacks. > > > > > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > > > Adding others on CC who might have feedback on the general approach. > > > > > > Thanx, Paul > > > > > > > --- > > > > kernel/rcu/tree.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > > index da3414522285..a252b2f0208d 100644 > > > > --- a/kernel/rcu/tree.c > > > > +++ b/kernel/rcu/tree.c > > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > > success = true; > > > > goto unlock_return; > > > > } > > > > - > > > > + kasan_record_aux_stack(ptr); > > > > success = kvfree_call_rcu_add_ptr_to_bulk(krcp, ptr); > > > > if (!success) { > > > > run_page_cache_worker(krcp); > > > > kvfree_call_rcu is intended to free objects, right? If so this is: > > True, but mightn't there still be RCU readers referencing this object for > some time, as in up to the point that the RCU grace period ends? If so, > won't adding this cause KASAN to incorrectly complain about those readers? > > Or am I missing something here? For example, is kasan_record_aux_stack() -only- recording the stack and not at all updating the allocated/freed state? Thanx, Paul > > Acked-by: Dmitry Vyukov <dvyukov@google.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-19 21:49 ` Paul E. McKenney 2020-11-20 8:51 ` Dmitry Vyukov @ 2020-11-20 11:59 ` Uladzislau Rezki 2020-11-20 12:06 ` Dmitry Vyukov 1 sibling, 1 reply; 10+ messages in thread From: Uladzislau Rezki @ 2020-11-20 11:59 UTC (permalink / raw) To: Zqiang Cc: Paul E. McKenney, josh, rostedt, joel, rcu, linux-kernel, kasan-dev, urezki On Thu, Nov 19, 2020 at 01:49:34PM -0800, Paul E. McKenney wrote: > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > From: Zqiang <qiang.zhang@windriver.com> > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > record call stacks. > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > See file:///home/git/kernel.org/rcutodo.html for more info. > > Adding others on CC who might have feedback on the general approach. > > Thanx, Paul > > > --- > > kernel/rcu/tree.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > index da3414522285..a252b2f0208d 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > success = true; > > goto unlock_return; > > } > > - > > + kasan_record_aux_stack(ptr); Is that save to invoke it on vmalloced ptr.? -- Vlad Rezki ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-20 11:59 ` Uladzislau Rezki @ 2020-11-20 12:06 ` Dmitry Vyukov 2020-11-20 12:49 ` Uladzislau Rezki 0 siblings, 1 reply; 10+ messages in thread From: Dmitry Vyukov @ 2020-11-20 12:06 UTC (permalink / raw) To: Uladzislau Rezki Cc: Zqiang, Paul E. McKenney, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev On Fri, Nov 20, 2020 at 12:59 PM Uladzislau Rezki <urezki@gmail.com> wrote: > > On Thu, Nov 19, 2020 at 01:49:34PM -0800, Paul E. McKenney wrote: > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > > From: Zqiang <qiang.zhang@windriver.com> > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > record call stacks. > > > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > Adding others on CC who might have feedback on the general approach. > > > > Thanx, Paul > > > > > --- > > > kernel/rcu/tree.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > index da3414522285..a252b2f0208d 100644 > > > --- a/kernel/rcu/tree.c > > > +++ b/kernel/rcu/tree.c > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > success = true; > > > goto unlock_return; > > > } > > > - > > > + kasan_record_aux_stack(ptr); > Is that save to invoke it on vmalloced ptr.? Yes, kasan_record_aux_stack should figure it out itself. We call kasan_record_aux_stack on call_rcu as well, and rcu structs can be anywhere. See: https://elixir.bootlin.com/linux/v5.10-rc4/source/mm/kasan/generic.c#L335 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack 2020-11-20 12:06 ` Dmitry Vyukov @ 2020-11-20 12:49 ` Uladzislau Rezki 0 siblings, 0 replies; 10+ messages in thread From: Uladzislau Rezki @ 2020-11-20 12:49 UTC (permalink / raw) To: Dmitry Vyukov, Zqiang Cc: Uladzislau Rezki, Paul E. McKenney, Josh Triplett, Steven Rostedt, Joel Fernandes, rcu, LKML, kasan-dev > On Fri, Nov 20, 2020 at 12:59 PM Uladzislau Rezki <urezki@gmail.com> wrote: > > > > On Thu, Nov 19, 2020 at 01:49:34PM -0800, Paul E. McKenney wrote: > > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@windriver.com wrote: > > > > From: Zqiang <qiang.zhang@windriver.com> > > > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > > record call stacks. > > > > > > > > Signed-off-by: Zqiang <qiang.zhang@windriver.com> > > > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > > > Adding others on CC who might have feedback on the general approach. > > > > > > Thanx, Paul > > > > > > > --- > > > > kernel/rcu/tree.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > > index da3414522285..a252b2f0208d 100644 > > > > --- a/kernel/rcu/tree.c > > > > +++ b/kernel/rcu/tree.c > > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > > success = true; > > > > goto unlock_return; > > > > } > > > > - > > > > + kasan_record_aux_stack(ptr); > > Is that save to invoke it on vmalloced ptr.? > > Yes, kasan_record_aux_stack should figure it out itself. > We call kasan_record_aux_stack on call_rcu as well, and rcu structs > can be anywhere. > See: > https://elixir.bootlin.com/linux/v5.10-rc4/source/mm/kasan/generic.c#L335 > Ah, i see the check. Just a minor comment, please also add a clear comment about intention of doing such record. Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> Thanks. -- Vlad Rezki ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-11-20 14:54 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-11-18 3:53 [PATCH] rcu: kasan: record and print kvfree_call_rcu call stack qiang.zhang 2020-11-19 21:49 ` Paul E. McKenney 2020-11-20 8:51 ` Dmitry Vyukov 2020-11-20 14:34 ` Paul E. McKenney 2020-11-20 14:44 ` Dmitry Vyukov 2020-11-20 14:54 ` Paul E. McKenney 2020-11-20 14:45 ` Paul E. McKenney 2020-11-20 11:59 ` Uladzislau Rezki 2020-11-20 12:06 ` Dmitry Vyukov 2020-11-20 12:49 ` Uladzislau Rezki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).