mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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


  

      	

  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®