From: Arjan van de Ven <arjan@infradead.org>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Drivers statically linked in the wrong order
Date: Mon, 26 Jun 2006 14:30:55 +0200 [thread overview]
Message-ID: <1151325055.3185.32.camel@laptopd505.fenrus.org> (raw)
In-Reply-To: <200606261259.25959.dj@david-web.co.uk>
> How can I get the I2C bus driver to be linked before the main driver? I've
> tried re-ordering things in Makefiles, but nothing I've tried seems to make
> any difference.
Hi,
there are 2 levels of ordering;
1) the initcall level
2) the Makefile order
at equal initcall level, the Makefile order really is the order that
matters, however... if there is not the same initcall level, then that
level overrules.
So to your problem, you have 2 choices
1) try to fix the makefile issue some more (will fail if there are
different initcall levels)
2) Use initcall levels yourself...
see
#define core_initcall(fn) __define_initcall("1",fn)
#define postcore_initcall(fn) __define_initcall("2",fn)
#define arch_initcall(fn) __define_initcall("3",fn)
#define subsys_initcall(fn) __define_initcall("4",fn)
#define fs_initcall(fn) __define_initcall("5",fn)
#define device_initcall(fn) __define_initcall("6",fn)
#define late_initcall(fn) __define_initcall("7",fn)
in include/linux.init.h
iirc a normal module_init() is over type "device_initcall", so you can
make your must-be-last one a late_initcall(), or your "must be first" a
subsys_initcall....
(note: you can use late_initcall() and friends instead of module_init;
for the module case these get defined to be module_init() anyway, so no
need for ugly ifdefs in your drivers)
Does this help?
Greetings,
Arjan van de Ven
next prev parent reply other threads:[~2006-06-26 12:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-26 11:59 David Johnson
2006-06-26 12:30 ` Arjan van de Ven [this message]
2006-06-26 16:23 ` David Johnson
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=1151325055.3185.32.camel@laptopd505.fenrus.org \
--to=arjan@infradead.org \
--cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®