Hi, On 22/01/2014 16:17, Paul Gortmaker wrote: > The file looks as if it is non-modular, but it piggy-backs > off CONFIG_SERIAL_8250 which is tristate. If set to "=m" > we will get this after the init/module header cleanup: > > arch/mips/loongson/common/serial.c:76:1: error: data definition has no type or storage class [-Werror] > arch/mips/loongson/common/serial.c:76:1: error: type defaults to 'int' in declaration of 'device_initcall' [-Werror=implicit-int] > arch/mips/loongson/common/serial.c:76:1: error: parameter names (without types) in function declaration [-Werror] > arch/mips/loongson/common/serial.c:58:19: error: 'serial_init' defined but not used [-Werror=unused-function] > cc1: all warnings being treated as errors > make[3]: *** [arch/mips/loongson/common/serial.o] Error 1 > > Make it clearly modular, and add a module_exit function, > so that we avoid the above breakage. > > Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: linux-mips@xxxxxxxxxxxxxx > Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Acked-by: John Crispin <blogic@xxxxxxxxxxx> as this patch is already in Paul's tree, i will set it to "other maintainer" in the linux-mips patchwork. Thanks, John > --- > > [patch added to init cleanup series: > http://git.kernel.org/cgit/linux/kernel/git/paulg/init.git/ ] > > arch/mips/loongson/common/serial.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/mips/loongson/common/serial.c b/arch/mips/loongson/common/serial.c > index 5f2b78a..4d0922f 100644 > --- a/arch/mips/loongson/common/serial.c > +++ b/arch/mips/loongson/common/serial.c > @@ -11,7 +11,7 @@ > */ > > #include <linux/io.h> > -#include <linux/init.h> > +#include <linux/module.h> > #include <linux/serial_8250.h> > > #include <asm/bootinfo.h> > @@ -72,5 +72,10 @@ static int __init serial_init(void) > > return platform_device_register(&uart8250_device); > } > +module_init(serial_init); > > -device_initcall(serial_init); > +static void __init serial_exit(void) > +{ > + platform_device_unregister(&uart8250_device); > +} > +module_exit(serial_exit);