[PATCH 056/493] edac: remove use of __devexit_p

Greg KH gregkh at linuxfoundation.org
Sat Nov 24 03:40:24 EST 2012


On Fri, Nov 23, 2012 at 11:06:35AM +0100, Borislav Petkov wrote:
> On Thu, Nov 22, 2012 at 10:22:22AM -0800, Greg KH wrote:
> > On Thu, Nov 22, 2012 at 02:44:51PM +0100, Borislav Petkov wrote:
> > > On Mon, Nov 19, 2012 at 01:20:05PM -0500, Bill Pemberton wrote:
> > > > CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
> > > > needed.
> > > 
> > > Erm, I don't understand. __devexit_p is defined also for modules not
> > > only for CONFIG_HOTPLUG:
> > > 
> > > #if defined(MODULE) || defined(CONFIG_HOTPLUG)
> > > #define __devexit_p(x) x
> > > #else
> > > #define __devexit_p(x) NULL
> > > #endif
> > > 
> > > AFAICT, we cannot remove it yet no?
> > 
> > If MODULE is defined, it defaults to nothing.  And now that
> > CONFIG_HOTPLUG is always set to Y, this always defaults to nothing.
> 
> Huh, if MODULE is defined, __devexit_p(x) evaluates to the function name
> 'x' itself, AFAICT.

Yes, sorry, that is what I was trying to say here, I meant "nothing" in
that the macro did not do anything, not that it was setting it to NULL.

> So, if MODULE is defined and we have a reference from retained sections
> to a discarded section (I'm rereading the comment over __devexit_p in
> <include/linux/init.h> btw) then we'll get linker errors so we'd still
> need the ifdef thing, no?

No, as there will not be any discarded sections anymore because
CONFIG_HOTPLUG is always enabled.  We will just delete this whole
#if/#endif section once all users of __devexit_p() are gone from the
tree.

Does that help out?

thanks,

greg k-h


More information about the Linuxppc-dev mailing list