Re: [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr

From: yjin
Date: Thu Sep 17 2015 - 05:33:14 EST



On 2015å09æ16æ 18:39, Minfei Huang wrote:
On 09/16/15 at 10:58am, yanjiang.jin@xxxxxxxxxxxxx wrote:
From: Yanjiang Jin <yanjiang.jin@xxxxxxxxxxxxx>

Function parse_crash_elf_headers() reads e_ident[EI_CLASS] then decides to
call parse_crash_elf64_headers() or parse_crash_elf32_headers().
But this happens in run time, not compile time. So compiler will report
the below warning:

In file included from include/linux/elf.h:4:0,
from fs/proc/vmcore.c:13:
fs/proc/vmcore.c: In function 'parse_crash_elf32_headers':
arch/mips/include/asm/elf.h:258:23: warning: initializatio
n from incompatible pointer type
struct elfhdr *__h = (hdr); \
^
How about converting the hdr to type elfhdr in above sentence, like
following.

struct elfhdr *__h = (struct elfhdr *)(hdr);

Yes, this is a replacement, and it seems more safe because it just affects MIPS arch.
But I also can't see any obvious impact if modifying common vmcore.c:-)
Anyway, if you stick to your opinion, I can send a V2 patch to update mips' elf.h rather than vmcore.c.

Thanks!
Yanjiang

Thanks
Minfei

fs/proc/vmcore.c:1071:4: note: in expansion of macro 'elf_
check_arch'
!elf_check_arch(&ehdr) ||
^

Signed-off-by: Yanjiang Jin <yanjiang.jin@xxxxxxxxxxxxx>
---
fs/proc/vmcore.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
index 4e61388..576bb26 100644
--- a/fs/proc/vmcore.c
+++ b/fs/proc/vmcore.c
@@ -999,7 +999,7 @@ static void free_elfcorebuf(void)
static int __init parse_crash_elf64_headers(void)
{
int rc=0;
- Elf64_Ehdr ehdr;
+ struct elfhdr ehdr;
u64 addr;
addr = elfcorehdr_addr;
@@ -1055,7 +1055,7 @@ fail:
static int __init parse_crash_elf32_headers(void)
{
int rc=0;
- Elf32_Ehdr ehdr;
+ struct elfhdr ehdr;
u64 addr;
addr = elfcorehdr_addr;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/