56d74dd5f7
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> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
amd7930_fn.c | ||
amd7930_fn.h | ||
arcofi.c | ||
arcofi.h | ||
asuscom.c | ||
avm_a1.c | ||
avm_a1p.c | ||
avm_pci.c | ||
avma1_cs.c | ||
bkm_a4t.c | ||
bkm_a8.c | ||
bkm_ax.h | ||
callc.c | ||
config.c | ||
diva.c | ||
elsa.c | ||
elsa_cs.c | ||
elsa_ser.c | ||
enternow_pci.c | ||
fsm.c | ||
fsm.h | ||
gazel.c | ||
hfc4s8s_l1.c | ||
hfc4s8s_l1.h | ||
hfc_2bds0.c | ||
hfc_2bds0.h | ||
hfc_2bs0.c | ||
hfc_2bs0.h | ||
hfc_pci.c | ||
hfc_pci.h | ||
hfc_sx.c | ||
hfc_sx.h | ||
hfc_usb.c | ||
hfc_usb.h | ||
hfcscard.c | ||
hisax.h | ||
hisax_cfg.h | ||
hisax_debug.h | ||
hisax_fcpcipnp.c | ||
hisax_fcpcipnp.h | ||
hisax_if.h | ||
hisax_isac.c | ||
hisax_isac.h | ||
hscx.c | ||
hscx.h | ||
hscx_irq.c | ||
icc.c | ||
icc.h | ||
ipac.h | ||
ipacx.c | ||
ipacx.h | ||
isac.c | ||
isac.h | ||
isar.c | ||
isar.h | ||
isdnhdlc.c | ||
isdnhdlc.h | ||
isdnl1.c | ||
isdnl1.h | ||
isdnl2.c | ||
isdnl2.h | ||
isdnl3.c | ||
isdnl3.h | ||
isurf.c | ||
ix1_micro.c | ||
jade.c | ||
jade.h | ||
jade_irq.c | ||
l3_1tr6.c | ||
l3_1tr6.h | ||
l3dss1.c | ||
l3dss1.h | ||
l3ni1.c | ||
l3ni1.h | ||
lmgr.c | ||
mic.c | ||
netjet.c | ||
netjet.h | ||
niccy.c | ||
nj_s.c | ||
nj_u.c | ||
q931.c | ||
s0box.c | ||
saphir.c | ||
sedlbauer.c | ||
sedlbauer_cs.c | ||
sportster.c | ||
st5481.h | ||
st5481_b.c | ||
st5481_d.c | ||
st5481_init.c | ||
st5481_usb.c | ||
tei.c | ||
teleint.c | ||
teles0.c | ||
teles3.c | ||
teles_cs.c | ||
telespci.c | ||
w6692.c | ||
w6692.h |