diff options
| author | Al Viro <viro@ftp.linux.org.uk> | 2008-11-22 17:36:54 +0000 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-30 10:03:37 -0800 | 
| commit | 56d74dd5f7ad8b6b0979ce915d51cf03bcc57267 (patch) | |
| tree | 1696aadcb0113e01bc9f8508bae00a3ba7922789 /drivers/oprofile/cpu_buffer.c | |
| parent | 8419641450edc838a6ce7cdf0f99d262bf0af2d5 (diff) | |
tricky one: hisax sections
a) hisax_init_pcmcia() needs to be defined only if we have
   CONFIG_HOTPLUG (no PCMCIA support otherwise) and can be declared
   __devinit.
b) HiSax_inithardware() can go __init
c) hisax_register() is passing to checkcard() full-blown hisax_cs_setup_card():
	checkcard(i, id, NULL, hisax_d_if->owner, hisax_cs_setup_card);
   The problem with it is that
	* hisax_cs_setup_card() is __devinit
	* hisax_register() is not
	* hisax_cs_setup_card() is a switch from hell, calling a lot of
	  setup_some_weirdcard() depending on card->typ.  _These_ are also
	  __devinit.
   However, in hisax_register() we have card->typ equal to
   ISDN_CTYPE_DYNAMIC, which reduces hisax_cs_setup_card() to "nevermind
   all that crap, just do nothing and return 2".  So we add a
   trimmed-down callback doing just that and passed to checkcard() by
   hisax_register().  _This_ is non-init (we can stand the impact on
   .text size).
Voila - no section warnings from drivers/isdn
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/oprofile/cpu_buffer.c')
0 files changed, 0 insertions, 0 deletions
