All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Jones <davej@suse.de>
To: Felipe W Damasio <felipewd@terra.com.br>
Cc: Linux-kernel <linux-kernel@vger.kernel.org>, trivial@rustcorp.com.au
Subject: Re: [PATCH] __devexit_p macro
Date: Fri, 2 Aug 2002 14:33:49 +0200	[thread overview]
Message-ID: <20020802143348.G25761@suse.de> (raw)
In-Reply-To: <20020802092456.23a3c49a.felipewd@terra.com.br>; from felipewd@terra.com.br on Fri, Aug 02, 2002 at 09:24:56AM +0000

On Fri, Aug 02, 2002 at 09:24:56AM +0000, Felipe W Damasio wrote:
 > --- ./include/linux/init.h.orig	Fri Aug  2 09:15:44 2002
 > +++ ./include/linux/init.h	Fri Aug  2 09:06:39 2002
 > @@ -177,12 +177,16 @@
 >  #define __devinitdata
 >  #define __devexit
 >  #define __devexitdata
 > -#define __devexit_p(x)  &(x)
 >  #else
 >  #define __devinit __init
 >  #define __devinitdata __initdata
 >  #define __devexit __exit
 >  #define __devexitdata __exitdata
 > +#endif
 > +
 > +#ifdef MODULE || CONFIG_HOTPLUG
 > +#define __devexit_p(x)  &(x)
 > +#else
 >  #define __devexit_p(x)  0
 >  #endif

Instead of making this a maze of #if/else's, you can acheive
the same effect with the following patch that has been in my
tree for a few months.. (hand pasted, may not apply cleanly)



@@ -167,12 +167,18 @@ typedef void (*__cleanup_module_func_t)(
 #define device_initcall(fn)        module_init(fn)
 #define late_initcall(fn)      module_init(fn)

-#endif
+#endif /* !MODULE */

 /* Data marked not to be saved by software_suspend() */
 #define __nosavedata __attribute__ ((__section__ (".data.nosave")))

-#ifdef CONFIG_HOTPLUG
+/* Functions marked as __devexit may be discarded at kernel link time, depending
+   on config options.  Newer versions of binutils detect references from
+   retained sections to discarded sections and flag an error.  Pointers to
+   __devexit functions must use __devexit_p(function_name), the wrapper will
+   insert either the function_name or NULL, depending on the config options.
+ */
+#if defined(MODULE) || defined(CONFIG_HOTPLUG)
 #define __devinit
 #define __devinitdata
 #define __devexit

-- 
| Dave Jones.        http://www.codemonkey.org.uk
| SuSE Labs

  reply	other threads:[~2002-08-02 12:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-02  9:24 [PATCH] __devexit_p macro Felipe W Damasio
2002-08-02 12:33 ` Dave Jones [this message]
2002-08-02 13:46   ` Keith Owens
2002-08-02 13:54     ` Keith Owens

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=20020802143348.G25761@suse.de \
    --to=davej@suse.de \
    --cc=felipewd@terra.com.br \
    --cc=linux-kernel@vger.kernel.org \
    --cc=trivial@rustcorp.com.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.