From: Thomas Gleixner <tglx@linutronix.de>
To: "Du, Changbin" <changbin.du@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Jonathan Corbet <corbet@lwn.net>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
josh@joshtriplett.org, Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
jiangshanlai@gmail.com, John Stultz <john.stultz@linaro.org>,
Tejun Heo <tj@kernel.org>,
borntraeger@de.ibm.com, dchinner@redhat.com,
linux-doc@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/7] debugobjects: correct the usage of fixup call results
Date: Fri, 22 Apr 2016 11:05:05 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.11.1604221104560.3941@nanos> (raw)
In-Reply-To: <1461312468-14335-3-git-send-email-changbin.du@intel.com>
On Fri, 22 Apr 2016, changbin.du@intel.com wrote:
> From: "Du, Changbin" <changbin.du@intel.com>
>
> If debug_object_fixup() return non-zero when problem has been
> fixed. But the code got it backwards, it taks 0 as fixup
> successfully. So fix it.
Wrong.
> @@ -415,7 +415,7 @@ int debug_object_activate(void *addr, struct debug_obj_descr *descr)
> state = obj->state;
> raw_spin_unlock_irqrestore(&db->lock, flags);
> ret = debug_object_fixup(descr->fixup_activate, addr, state);
> - return ret ? -EINVAL : 0;
> + return ret ? 0 : -EINVAL;
So you need to look at the fixup_activate() callbacks.
timer_fixup_activate()
The only state handled there is ODEBUG_STATE_NOTAVAILABLE. This can happen
for two reasons:
1) timer is statically allocated and initialized. That's a legitimate reason
and it does not count as a fixup
2) timer has not been initialized, so we have no idea what to do with it. We
set it up with a dummy callback and return 1 because that is a fixup.
So the return check for ret != 0 is correct. #2 is invalid
hrtimer_fixup_activate()
There is not much we can do about it.
work_fixup_activate()
That's similar to timer_fixup_activate(). We need to handle the statically
allocated work gracefully.
rcuhead_fixup_activate()
Handles the ODEBUG_STATE_NOTAVAILABLE case by tracking it. Not a fixup,
returns 0.
The other states are invalid and there is not much we can do about
that. Returns 1.
I agree that this is not really intuitive, but it's correct as it is. I'm
happy to take patches which make it simpler to understand. Just blindly
changing everything to bool does not fall into that category.
Thanks,
tglx
next prev parent reply other threads:[~2016-04-22 9:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-22 8:07 [PATCH 0/7] Make debugobjects fixup functions return bool type changbin.du
2016-04-22 8:07 ` [PATCH 1/7] debugobjects: make fixup functions return bool instead of int changbin.du
2016-04-22 8:33 ` Thomas Gleixner
2016-04-22 8:54 ` Du, Changbin
2016-04-22 9:16 ` Thomas Gleixner
2016-04-22 8:07 ` [PATCH 2/7] debugobjects: correct the usage of fixup call results changbin.du
2016-04-22 9:05 ` Thomas Gleixner [this message]
2016-04-22 8:07 ` [PATCH 3/7] workqueue: update debugobjects fixup callbacks return type changbin.du
2016-04-22 8:07 ` [PATCH 4/7] timer: " changbin.du
2016-04-22 8:07 ` [PATCH 5/7] rcu: " changbin.du
2016-04-22 8:07 ` [PATCH 6/7] percpu_counter: " changbin.du
2016-04-22 8:07 ` [PATCH 7/7] Documentation: update debugobjects doc changbin.du
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=alpine.DEB.2.11.1604221104560.3941@nanos \
--to=tglx@linutronix.de \
--cc=akpm@linux-foundation.org \
--cc=borntraeger@de.ibm.com \
--cc=changbin.du@intel.com \
--cc=corbet@lwn.net \
--cc=dchinner@redhat.com \
--cc=jiangshanlai@gmail.com \
--cc=john.stultz@linaro.org \
--cc=josh@joshtriplett.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=rostedt@goodmis.org \
--cc=tj@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®