On 09/16/15 at 10:58am, yanjiang.jin@xxxxxxxxxxxxx wrote:
From: Yanjiang Jin <yanjiang.jin@xxxxxxxxxxxxx>How about converting the hdr to type elfhdr in above sentence, like
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); \
^
following.
struct elfhdr *__h = (struct elfhdr *)(hdr);
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;