Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1384802

RE: [PATCH 1/7] debugobjects: make fixup functions return bool instead of int

From "Du, Changbin" <changbin.du@intel.com>
Newsgroups linux.kernel
Subject RE: [PATCH 1/7] debugobjects: make fixup functions return bool instead of int
Date 2016-04-22 11:00 +0200
Message-ID <rqF6p-7D6-7@gated-at.bofh.it> (permalink)
References <rqEtI-7kx-5@gated-at.bofh.it> <rqEtI-7kx-3@gated-at.bofh.it> <rqEN4-7vo-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi,
> On Fri, 22 Apr 2016, changbin.du@intel.com wrote:
> > From: "Du, Changbin" <changbin.du@intel.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

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 1/7] debugobjects: make fixup functions return bool instead of int changbin.du@intel.com - 2016-04-22 10:20 +0200
  Re: [PATCH 1/7] debugobjects: make fixup functions return bool  instead of int Thomas Gleixner <tglx@linutronix.de> - 2016-04-22 10:40 +0200
    RE: [PATCH 1/7] debugobjects: make fixup functions return bool  instead of int "Du, Changbin" <changbin.du@intel.com> - 2016-04-22 11:00 +0200
      RE: [PATCH 1/7] debugobjects: make fixup functions return bool  instead of int Thomas Gleixner <tglx@linutronix.de> - 2016-04-22 11:20 +0200

csiph-web