[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0C18FE92A7765D4EB9EE5D38D86A563A05D1B3D7@SHSMSX103.ccr.corp.intel.com>
Date: Fri, 22 Apr 2016 08:54:24 +0000
From: "Du, Changbin" <changbin.du@...el.com>
To: Thomas Gleixner <tglx@...utronix.de>
CC: Andrew Morton <akpm@...ux-foundation.org>,
Jonathan Corbet <corbet@....net>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
"josh@...htriplett.org" <josh@...htriplett.org>,
Steven Rostedt <rostedt@...dmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
"jiangshanlai@...il.com" <jiangshanlai@...il.com>,
John Stultz <john.stultz@...aro.org>,
Tejun Heo <tj@...nel.org>,
"borntraeger@...ibm.com" <borntraeger@...ibm.com>,
"dchinner@...hat.com" <dchinner@...hat.com>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 1/7] debugobjects: make fixup functions return bool
instead of int
Hi,
> On Fri, 22 Apr 2016, changbin.du@...el.com wrote:
> > From: "Du, Changbin" <changbin.du@...el.com>
> >
> > The object debugging infrastructure core provides some fixup callbacks
> > for the subsystem who use it. These callbacks are called from the debug
> > code whenever a problem in debug_object_init is detected. And
> > debugobjects core suppose them returns 1 when the fixup was successful,
> > otherwise 0. So the return type is boolean.
> >
> > A bad thing is that debug_object_fixup use the return value for
> > arithmetic operation. It confused me that what is the reall return
>
> What's bad about that? The fact that it's used for arithmethic operation or
> that it confused you?
>
It confused me because this is not a common usage. I was confused that what
does he fixup function return? A countable value? But doc says return fixed
or not!
if (fixup)
fixed = fixup(addr, state);
debug_objects_fixups += fixed;
In common,for int return 0 indicates success, negative for fail, positive for something
countable. So I think it is better follow this rule. Here is not of countable, it is Boolean.
So why not this?
if (fixup && fixup(addr, state))
debug_objects_fixups++;
> > Reading over the whole code, I found some place do use the return value
> > incorrectly(see next patch). So why use bool type instead?
>
> Patches which fix a problem need to come first not in the middle of a revamp
> series.
>
Thanks, I am first know of this.
> > + bool (*fixup_init)(void *addr, enum debug_obj_state state);
> > + bool (*fixup_activate)(void *addr, enum debug_obj_state state);
> > + bool (*fixup_destroy)(void *addr, enum debug_obj_state state);
> > + bool (*fixup_free)(void *addr, enum debug_obj_state state);
> > + bool (*fixup_assert_init)(void *addr, enum debug_obj_state state);
>
> So this change will introduce a gazillion of compile warnings because the
> callbacks in the various usage sites are still having 'int' return type.
>
No, I modified all the code who use debugojects API.
> Thanks,
>
> tglx
Thanks,
Du, Changbin
Powered by blists - more mailing lists