From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@01.org, "Joel Fernandes (Google)" <joel@joelfernandes.org>
Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org,
"Paul E. McKenney" <paulmck@kernel.org>
Subject: [rcu:dev.2019.09.23a 62/77] kernel/rcu/tree.c:2882 kfree_call_rcu() warn: inconsistent returns 'irqsave:flags'.
Date: Tue, 24 Sep 2019 11:05:10 +0300 [thread overview]
Message-ID: <20190924080510.GL20699@kadam> (raw)
tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2019.09.23a
head: 97de53b94582c208ee239178b208b8e8b9472585
commit: 39676bb72323718a9e7bab1ba9c4a68319a96f62 [62/77] rcu: Add support for debug_objects debugging for kfree_rcu()
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
kernel/rcu/tree.c:2882 kfree_call_rcu() warn: inconsistent returns 'irqsave:flags'.
Locked on: line 2867
Unlocked on: line 2882
git remote add rcu https://kernel.googlesource.com/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
git remote update rcu
git checkout 39676bb72323718a9e7bab1ba9c4a68319a96f62
vim +2882 kernel/rcu/tree.c
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2850) void kfree_call_rcu(struct rcu_head *head, rcu_callback_t func)
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2851) {
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2852) unsigned long flags;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2853) struct kfree_rcu_cpu *krcp;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2854)
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2855) head->func = func;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2856)
87970ccf5a9125 Paul E. McKenney 2019-09-19 2857 local_irq_save(flags); // For safely calling this_cpu_ptr().
^^^^^^^^^^^^^^^^^^^^^
IRQs disabled.
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2858) krcp = this_cpu_ptr(&krc);
ff8db005e371cb Paul E. McKenney 2019-09-19 2859 if (krcp->initialized)
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2860) spin_lock(&krcp->lock);
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2861)
87970ccf5a9125 Paul E. McKenney 2019-09-19 2862 // Queue the object but don't yet schedule the batch.
39676bb7232371 Joel Fernandes (Google 2019-09-22 2863) if (debug_rcu_head_queue(head)) {
39676bb7232371 Joel Fernandes (Google 2019-09-22 2864) // Probable double kfree_rcu(), just leak.
39676bb7232371 Joel Fernandes (Google 2019-09-22 2865) WARN_ONCE(1, "%s(): Double-freed call. rcu_head %p\n",
39676bb7232371 Joel Fernandes (Google 2019-09-22 2866) __func__, head);
39676bb7232371 Joel Fernandes (Google 2019-09-22 2867) return;
Need to re-enable before returning.
39676bb7232371 Joel Fernandes (Google 2019-09-22 2868) }
87970ccf5a9125 Paul E. McKenney 2019-09-19 2869 head->func = func;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2870) head->next = krcp->head;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2871) krcp->head = head;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2872)
87970ccf5a9125 Paul E. McKenney 2019-09-19 2873 // Set timer to drain after KFREE_DRAIN_JIFFIES.
ff8db005e371cb Paul E. McKenney 2019-09-19 2874 if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING &&
be39848334e088 Paul E. McKenney 2019-09-22 2875 !krcp->monitor_todo) {
be39848334e088 Paul E. McKenney 2019-09-22 2876 krcp->monitor_todo = true;
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2877) schedule_delayed_work(&krcp->monitor_work, KFREE_DRAIN_JIFFIES);
be39848334e088 Paul E. McKenney 2019-09-22 2878 }
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2879)
ff8db005e371cb Paul E. McKenney 2019-09-19 2880 if (krcp->initialized)
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2881) spin_unlock(&krcp->lock);
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 @2882) local_irq_restore(flags);
5f5046cc15d514 Joel Fernandes (Google 2019-08-05 2883) }
495aa969dbaef2 Andreea-Cristina Bernat 2014-03-18 2884 EXPORT_SYMBOL_GPL(kfree_call_rcu);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
next reply other threads:[~2019-09-24 8:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-24 8:05 Dan Carpenter [this message]
2019-09-24 12:15 ` [rcu:dev.2019.09.23a 62/77] kernel/rcu/tree.c:2882 kfree_call_rcu() warn: inconsistent returns 'irqsave:flags' Joel Fernandes
2019-09-24 16:03 ` Paul E. McKenney
2019-09-26 18:19 ` Joel Fernandes
2019-09-26 19:24 ` Paul E. McKenney
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=20190924080510.GL20699@kadam \
--to=dan.carpenter@oracle.com \
--cc=joel@joelfernandes.org \
--cc=kbuild-all@01.org \
--cc=kbuild@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
/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 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.