From: Jiri Slaby Some functions are now called from pci probing functiuon which is __devinit, not __init, correct this to not free functions after init if hotplug enabled. Signed-off-by: Jiri Slaby Cc: Alan Cox Signed-off-by: Andrew Morton --- drivers/char/stallion.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff -puN drivers/char/stallion.c~char-stallion-correct-__init-macros drivers/char/stallion.c --- a/drivers/char/stallion.c~char-stallion-correct-__init-macros +++ a/drivers/char/stallion.c @@ -1925,7 +1925,7 @@ static void stl_offintr(void *private) * Initialize all the ports on a panel. */ -static int __init stl_initports(struct stlbrd *brdp, struct stlpanel *panelp) +static int __devinit stl_initports(struct stlbrd *brdp, struct stlpanel *panelp) { struct stlport *portp; int chipmask, i; @@ -1997,7 +1997,7 @@ static void stl_cleanup_panels(struct st * Try to find and initialize an EasyIO board. */ -static int __init stl_initeio(struct stlbrd *brdp) +static int __devinit stl_initeio(struct stlbrd *brdp) { struct stlpanel *panelp; unsigned int status; @@ -2150,7 +2150,7 @@ err: * dealing with all types of ECH board. */ -static int __init stl_initech(struct stlbrd *brdp) +static int __devinit stl_initech(struct stlbrd *brdp) { struct stlpanel *panelp; unsigned int status, nxtid, ioaddr, conflict; @@ -2374,7 +2374,7 @@ err: * since the initial search and setup is very different. */ -static int __init stl_brdinit(struct stlbrd *brdp) +static int __devinit stl_brdinit(struct stlbrd *brdp) { int i, retval; @@ -2440,7 +2440,7 @@ err: * Find the next available board number that is free. */ -static int __init stl_getbrdnr(void) +static int __devinit stl_getbrdnr(void) { int i; _