[PATCH] efi: Fix free_end build warning

Geoff Levand geoff at infradead.org
Thu Nov 13 11:42:40 PST 2014


Hi Will,

On Thu, 2014-11-13 at 11:44 +0000, Will Deacon wrote:
> Do you have any idea how GCC arrives at this conclusion? I can't see a
> path through that function where we use free_end without initialising it.

I've seen it warn like this before, when it shouldn't. I guess
-Wmaybe-uninitialized makes it more conservative.

Using:

  aarch64-linux-gnu-gcc (Ubuntu/Linaro 4.8.2-13ubuntu1) 4.8.2 20140110 (prerelease) [ibm/gcc-4_8-branch merged from gcc-4_8-branch, revision 205847]

> Does something like the patch below help?

Here is the full output, for-next/core gives:

/home/geoff/projects/linaro/git/linux-kexec/arch/arm64/kernel/efi.c:281:31: warning: ‘free_end’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     total_freed += free_region(free_start, free_end);
                               ^
/home/geoff/projects/linaro/git/linux-kexec/arch/arm64/kernel/efi.c:225:28: note: ‘free_end’ was declared here
  u64 keep_end, free_start, free_end;
                            ^
Your mod gives:

/home/geoff/projects/linaro/git/linux-kexec/arch/arm64/kernel/efi.c:279:31: warning: ‘free_end’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     total_freed += free_region(free_start, free_end);
                               ^
/home/geoff/projects/linaro/git/linux-kexec/arch/arm64/kernel/efi.c:225:28: note: ‘free_end’ was declared here
  u64 keep_end, free_start, free_end;
                            ^
So about the same.

-Geoff





More information about the linux-arm-kernel mailing list