c6x: kernel: setup: Type cast 'fdt' to "void *" for early_init_dt_scan() in machine_init()
PATCH 1/1 c6x: kernel: setup: Type cast 'fdt' to "void *" for early_init_dt_scan() in machine_init()
In reply to a message not in the archiveJust forward to linux kernel mailing list.
Thanks.
-------- Forwarded Message --------
Subject: [PATCH] c6x: kernel: setup: Type cast 'fdt' to "void *" for early_init_dt_scan() in machine_init()
Date: Sun, 01 Mar 2015 16:11:29 +0800
From: Chen Gang <[email protected]>
To: [email protected], [email protected], [email protected]
CC: [email protected] <[email protected]>, [email protected] <[email protected]>
early_init_dt_scan() accepts "void *", so c6x needs to type cast 'fdt' to "void *" to avoid warning:
CC arch/c6x/kernel/setup.o
arch/c6x/kernel/setup.c: In function 'machine_init':
arch/c6x/kernel/setup.c:290:21: warning: passing argument 1 of 'early_init_dt_scan' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
early_init_dt_scan(fdt);
^
In file included from arch/c6x/kernel/setup.c:19:0:
include/linux/of_fdt.h:75:13: note: expected 'void *' but argument is of type 'const void *'
extern bool early_init_dt_scan(void *params);
^--- arch/c6x/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/c6x/kernel/setup.c +1 -1
@@ -289,7 +289,7 @@ notrace void __init machine_init(unsigned long dt_ptr) fdt = dtb;/* Do some early initialization based on the flat device tree */ -early_init_dt_scan (fdt); +early_init_dt_scan ((void *)fdt);parse_early_param (); }
Signature · 1 line
1.9.3
Quoted 23 lines · Chen Gang
early_init_dt_scan()accepts "void *", so c6x needs to type cast 'fdt' to "void *" to avoid warning:CC
arch/c6x/kernel/setup.o
arch/c6x/kernel/setup.c: In function 'machine_init':
arch/c6x/kernel/setup.c:290:21: warning: passing argument 1 of 'early_init_dt_scan' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]early_init_dt_scan(fdt); ^ In file included from arch/c6x/kernel/setup.c:19:0: include/linux/of_fdt.h:75:13: note: expected 'void *' but argument is of type 'const void *' extern bool early_init_dt_scan(void *params); ^Signed-off-by Chen Gang <[email protected]>--- arch/c6x/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/c6x/kernel/setup.c +0
-0
arch/c6x/kernel/setup.c notrace void __init machine_init(unsigned long dt_ptr) · line 295
Quoted 8 lines
arch/c6x/kernel/setup.c +1
-1@@ -289,7 +289,7 @@ notrace void __init machine_init(unsigned long dt_ptr) fdt = dtb;/* Do some early initialization based on the flat device tree */ -early_init_dt_scan (fdt); +early_init_dt_scan ((void *)fdt);parse_early_param (); }
I don't like the cast. I think the thing to do is just remove the const from local variables.