From: Samuel Ortiz <samuel.ortiz@solidboot.com>
To: davem@davemloft.net
Cc: sam@ravnborg.org, stable@kernel.org, eric.y.miao@gmail.com,
irda-users@lists.sourceforge.net, netdev@vger.kernel.org
Subject: Re: [irda-users] [PATCH] [IrDA] Fix IrDA build failure
Date: Mon, 16 Jul 2007 16:00:52 +0300 [thread overview]
Message-ID: <20070716130052.GC22757@mail.solidboot.com> (raw)
In-Reply-To: <20070716111715.GB22757@mail.solidboot.com>
On Mon, Jul 16, 2007 at 02:17:15PM +0300, Samuel Ortiz wrote:
> Hi Dave,
>
> When having built-in IrDA, we hit the following error:
>
> `irda_sysctl_unregister' referenced in section `.init.text' of
> net/built-in.o: defined in discarded section `.exit.text' of
> net/built-in.o
> `irda_proc_unregister' referenced in section `.init.text' of
> net/built-in.o: defined in discarded section `.exit.text' of
> net/built-in.o
> `irsock_cleanup' referenced in section `.init.text' of net/built-in.o:
> defined in discarded section `.exit.text' of net/built-in.o
> `irttp_cleanup' referenced in section `.init.text' of net/built-in.o:
> defined in discarded section `.exit.text' of net/built-in.o
> `iriap_cleanup' referenced in section `.init.text' of net/built-in.o:
> defined in discarded section `.exit.text' of net/built-in.o
> `irda_device_cleanup' referenced in section `.init.text' of
> net/built-in.o: defined in discarded section `.exit.text' of
> net/built-in.o
> `irlap_cleanup' referenced in section `.init.text' of net/built-in.o:
> defined in discarded section `.exit.text' of net/built-in.o
> `irlmp_cleanup' referenced in section `.init.text' of net/built-in.o:
> defined in discarded section `.exit.text' of net/built-in.o
> make[1]: *** [.tmp_vmlinux1] Error 1
> make: *** [_all] Error 2
>
> This is due to the irda_init fix recently added, where we call __exit
> routines from an __init one. It is a build failure that I didn't catch
> because it doesn't show up when building IrDA as a module. My apologies
> for that.
I forgot to mention that the build fails on ARM but not on x86. As Sam
explained to me, x86 discards exit sections at runtime only, unlike ARM.
I don't know about other platforms though.
So, to hit this build failure, you need a combination of !x86 and
built-in IrDA.
Cheers,
Samuel.
> The following patch fixes that failure and is against your net-2.6
> tree. I hope it can make it to the merge window, and stable@kernel.org
> is CCed on this mail.
>
> Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
>
> diff --git a/net/irda/af_irda.c b/net/irda/af_irda.c
> index dcd7e32..4c670cf 100644
> --- a/net/irda/af_irda.c
> +++ b/net/irda/af_irda.c
> @@ -2567,7 +2567,7 @@ int __init irsock_init(void)
> * Remove IrDA protocol
> *
> */
> -void __exit irsock_cleanup(void)
> +void irsock_cleanup(void)
> {
> sock_unregister(PF_IRDA);
> proto_unregister(&irda_proto);
> diff --git a/net/irda/irda_device.c b/net/irda/irda_device.c
> index 7b5def1..435b563 100644
> --- a/net/irda/irda_device.c
> +++ b/net/irda/irda_device.c
> @@ -95,14 +95,14 @@ int __init irda_device_init( void)
> return 0;
> }
>
> -static void __exit leftover_dongle(void *arg)
> +static void leftover_dongle(void *arg)
> {
> struct dongle_reg *reg = arg;
> IRDA_WARNING("IrDA: Dongle type %x not unregistered\n",
> reg->type);
> }
>
> -void __exit irda_device_cleanup(void)
> +void irda_device_cleanup(void)
> {
> IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
>
> diff --git a/net/irda/iriap.c b/net/irda/iriap.c
> index 774eb70..ee3889f 100644
> --- a/net/irda/iriap.c
> +++ b/net/irda/iriap.c
> @@ -153,7 +153,7 @@ int __init iriap_init(void)
> * Initializes the IrIAP layer, called by the module cleanup code in
> * irmod.c
> */
> -void __exit iriap_cleanup(void)
> +void iriap_cleanup(void)
> {
> irlmp_unregister_service(service_handle);
>
> diff --git a/net/irda/irlap.c b/net/irda/irlap.c
> index 2fc9f51..3d76aaf 100644
> --- a/net/irda/irlap.c
> +++ b/net/irda/irlap.c
> @@ -95,7 +95,7 @@ int __init irlap_init(void)
> return 0;
> }
>
> -void __exit irlap_cleanup(void)
> +void irlap_cleanup(void)
> {
> IRDA_ASSERT(irlap != NULL, return;);
>
> diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c
> index 24a5e3f..7efa930 100644
> --- a/net/irda/irlmp.c
> +++ b/net/irda/irlmp.c
> @@ -116,7 +116,7 @@ int __init irlmp_init(void)
> * Remove IrLMP layer
> *
> */
> -void __exit irlmp_cleanup(void)
> +void irlmp_cleanup(void)
> {
> /* Check for main structure */
> IRDA_ASSERT(irlmp != NULL, return;);
> diff --git a/net/irda/irproc.c b/net/irda/irproc.c
> index d6f9aba..181cb51 100644
> --- a/net/irda/irproc.c
> +++ b/net/irda/irproc.c
> @@ -84,7 +84,7 @@ void __init irda_proc_register(void)
> * Unregister irda entry in /proc file system
> *
> */
> -void __exit irda_proc_unregister(void)
> +void irda_proc_unregister(void)
> {
> int i;
>
> diff --git a/net/irda/irsysctl.c b/net/irda/irsysctl.c
> index 2e968e7..957e04f 100644
> --- a/net/irda/irsysctl.c
> +++ b/net/irda/irsysctl.c
> @@ -287,7 +287,7 @@ int __init irda_sysctl_register(void)
> * Unregister our sysctl interface
> *
> */
> -void __exit irda_sysctl_unregister(void)
> +void irda_sysctl_unregister(void)
> {
> unregister_sysctl_table(irda_table_header);
> }
> diff --git a/net/irda/irttp.c b/net/irda/irttp.c
> index 7f50832..3d7ab03 100644
> --- a/net/irda/irttp.c
> +++ b/net/irda/irttp.c
> @@ -109,7 +109,7 @@ int __init irttp_init(void)
> * Called by module destruction/cleanup code
> *
> */
> -void __exit irttp_cleanup(void)
> +void irttp_cleanup(void)
> {
> /* Check for main structure */
> IRDA_ASSERT(irttp->magic == TTP_MAGIC, return;);
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> irda-users mailing list
> irda-users@lists.sourceforge.net
> http://lists.sourceforge.net/lists/listinfo/irda-users
next prev parent reply other threads:[~2007-07-16 13:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-16 11:17 [PATCH] [IrDA] Fix IrDA build failure Samuel Ortiz
2007-07-16 11:56 ` Evgeniy Polyakov
2007-07-16 12:07 ` Adrian Bunk
2007-07-16 12:17 ` Evgeniy Polyakov
2007-07-16 13:05 ` Adrian Bunk
2007-07-16 15:16 ` Sam Ravnborg
2007-07-16 13:00 ` Samuel Ortiz [this message]
2007-07-17 5:08 ` [irda-users] " Adrian Bunk
[not found] ` <20070716111715.GB22757-OPs8hQ7j6VREYlHNa9+yaNBPR1lH4CV8@public.gmane.org>
2007-07-18 9:17 ` David Miller
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=20070716130052.GC22757@mail.solidboot.com \
--to=samuel.ortiz@solidboot.com \
--cc=davem@davemloft.net \
--cc=eric.y.miao@gmail.com \
--cc=irda-users@lists.sourceforge.net \
--cc=netdev@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=stable@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 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.