]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
powerpc/boot: Use address-of operator on section symbols
authorNathan Chancellor <natechancellor@gmail.com>
Wed, 24 Jun 2020 03:59:20 +0000 (20:59 -0700)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 30 Jun 2020 04:38:00 +0000 (14:38 +1000)
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: Joel Stanley <joel@jms.id.au>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Geoff Levand <geoff@infradead.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200624035920.835571-1-natechancellor@gmail.com
arch/powerpc/boot/main.c
arch/powerpc/boot/ps3.c

index a9d209135975daecd270fad855dde12a19768d1d..cae31a6e8f029db10660dd45806036326d5fb47c 100644 (file)
@@ -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
         * 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",
                       _initrd_start, _initrd_end);
                initrd_addr = (unsigned long)_initrd_start;
@@ -152,7 +152,7 @@ static void prep_esm_blob(struct addr_range vmlinux, void *chosen)
        unsigned long esm_blob_addr, esm_blob_size;
 
        /* Do we have an ESM (Enter Secure Mode) blob? */
-       if (_esm_blob_end <= _esm_blob_start)
+       if (&_esm_blob_end <= &_esm_blob_start)
                return;
 
        printf("Attached ESM blob at 0x%p-0x%p\n\r",
index c52552a681c5e5eea028e7c271d8dab664a0b2b5..6e4efbdb6b7cf3978e3f11ac2fc19c424ec0d8cc 100644 (file)
@@ -127,7 +127,7 @@ void platform_init(void)
        ps3_repository_read_rm_size(&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-end", (u32)(_initrd_end));
        }