2015-11-28 18:26:09

by Niklas Cassel

[permalink] [raw]
Subject: [PATCH 1/4] cris: intmem: fix device_initcall compile warning

Cannot add __init macro to crisv32_intmem_init,
since the function is being called by other functions.
Creating a wrapper instead.

arch/cris/arch-v32/mm/intmem.c: At top level:
arch/cris/arch-v32/mm/intmem.c:148:17: warning: initialization from incompatible pointer type
device_initcall(crisv32_intmem_init);
^
include/linux/init.h:184:58: note: in definition of macro ‘__define_initcall’
__attribute__((__section__(".initcall" #id ".init"))) = fn; \
^
arch/cris/arch-v32/mm/intmem.c:148:1: note: in expansion of macro ‘device_initcall’
device_initcall(crisv32_intmem_init);
^

Signed-off-by: Niklas Cassel <[email protected]>
---
arch/cris/arch-v32/mm/intmem.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/cris/arch-v32/mm/intmem.c b/arch/cris/arch-v32/mm/intmem.c
index 9ef5609..bad735d 100644
--- a/arch/cris/arch-v32/mm/intmem.c
+++ b/arch/cris/arch-v32/mm/intmem.c
@@ -145,5 +145,12 @@ unsigned long crisv32_intmem_virt_to_phys(void* addr)
(unsigned long)intmem_virtual + MEM_INTMEM_START +
RESERVED_SIZE);
}
-device_initcall(crisv32_intmem_init);
+
+static int __init crisv32_intmem_setup(void)
+{
+ crisv32_intmem_init();
+
+ return 0;
+}
+device_initcall(crisv32_intmem_setup);

--
2.5.0