Commit df4232d9 authored by Nathan Chancellor's avatar Nathan Chancellor Committed by Michael Ellerman

powerpc/boot: Use address-of operator on section symbols

Clang warns:

arch/powerpc/boot/main.c:107:18: warning: array comparison always
evaluates to a constant [-Wtautological-compare]
        if (_initrd_end > _initrd_start) {
                        ^
arch/powerpc/boot/main.c:155:20: warning: array comparison always
evaluates to a constant [-Wtautological-compare]
        if (_esm_blob_end <= _esm_blob_start)
                          ^
2 warnings generated.

These are not true arrays, they are linker defined symbols, which are
just addresses.  Using the address of operator silences the warning
and does not change the resulting assembly with either clang/ld.lld
or gcc/ld (tested with diff + objdump -Dr).
Reported-by: default avatarJoel Stanley <joel@jms.id.au>
Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
Tested-by: default avatarGeoff Levand <geoff@infradead.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200624035920.835571-1-natechancellor@gmail.com
parent 1addb644
...@@ -104,7 +104,7 @@ static struct addr_range prep_initrd(struct addr_range vmlinux, void *chosen, ...@@ -104,7 +104,7 @@ static struct addr_range prep_initrd(struct addr_range vmlinux, void *chosen,
{ {
/* If we have an image attached to us, it overrides anything /* If we have an image attached to us, it overrides anything
* supplied by the loader. */ * supplied by the loader. */
if (_initrd_end > _initrd_start) { if (&_initrd_end > &_initrd_start) {
printf("Attached initrd image at 0x%p-0x%p\n\r", printf("Attached initrd image at 0x%p-0x%p\n\r",
_initrd_start, _initrd_end); _initrd_start, _initrd_end);
initrd_addr = (unsigned long)_initrd_start; initrd_addr = (unsigned long)_initrd_start;
...@@ -152,7 +152,7 @@ static void prep_esm_blob(struct addr_range vmlinux, void *chosen) ...@@ -152,7 +152,7 @@ static void prep_esm_blob(struct addr_range vmlinux, void *chosen)
unsigned long esm_blob_addr, esm_blob_size; unsigned long esm_blob_addr, esm_blob_size;
/* Do we have an ESM (Enter Secure Mode) blob? */ /* Do we have an ESM (Enter Secure Mode) blob? */
if (_esm_blob_end <= _esm_blob_start) if (&_esm_blob_end <= &_esm_blob_start)
return; return;
printf("Attached ESM blob at 0x%p-0x%p\n\r", printf("Attached ESM blob at 0x%p-0x%p\n\r",
......
...@@ -127,7 +127,7 @@ void platform_init(void) ...@@ -127,7 +127,7 @@ void platform_init(void)
ps3_repository_read_rm_size(&rm_size); ps3_repository_read_rm_size(&rm_size);
dt_fixup_memory(0, rm_size); dt_fixup_memory(0, rm_size);
if (_initrd_end > _initrd_start) { if (&_initrd_end > &_initrd_start) {
setprop_val(chosen, "linux,initrd-start", (u32)(_initrd_start)); setprop_val(chosen, "linux,initrd-start", (u32)(_initrd_start));
setprop_val(chosen, "linux,initrd-end", (u32)(_initrd_end)); setprop_val(chosen, "linux,initrd-end", (u32)(_initrd_end));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment