Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1225686 > unrolled thread

[PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr

Started by<yanjiang.jin@windriver.com>
First post2015-09-16 05:00 +0200
Last post2015-09-18 07:50 +0200
Articles 7 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr <yanjiang.jin@windriver.com> - 2015-09-16 05:00 +0200
    [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr <yanjiang.jin@windriver.com> - 2015-09-16 05:00 +0200
      Re: [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr Dave Young <dyoung@redhat.com> - 2015-09-16 11:40 +0200
      Re: [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr Minfei Huang <mhuang@redhat.com> - 2015-09-16 12:40 +0200
        Re: [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr Minfei Huang <mhuang@redhat.com> - 2015-09-16 12:50 +0200
        Re: [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr yjin <yanjiang.jin@windriver.com> - 2015-09-17 11:40 +0200
          Re: [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr Minfei Huang <mhuang@redhat.com> - 2015-09-18 07:50 +0200

#1225686 — [PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr

From<yanjiang.jin@windriver.com>
Date2015-09-16 05:00 +0200
Subject[PATCH] vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr
Message-ID<q9b6W-8hW-1@gated-at.bofh.it>
From: Yanjiang Jin <yanjiang.jin@windriver.com>

Already verified this patch on a MIPS64 cavium octeon board: CN78XX.

This patch is to eliminate the compile warning only, has no side effect in run-time.

Yanjiang Jin (1):
  vmcore: replace Elf64_Ehdr/Elf32_Ehdr with elfhdr

 fs/proc/vmcore.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
1.9.1

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

[toc] | [next] | [standalone]


#1225689

From<yanjiang.jin@windriver.com>
Date2015-09-16 05:00 +0200
Message-ID<q9b6W-8hW-9@gated-at.bofh.it>
In reply to#1225686
From: Yanjiang Jin <yanjiang.jin@windriver.com>

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);     \
                       ^
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@windriver.com>
---
 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;
-- 
1.9.1

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

[toc] | [prev] | [next] | [standalone]


#1225893

FromDave Young <dyoung@redhat.com>
Date2015-09-16 11:40 +0200
Message-ID<q9hm4-uy-27@gated-at.bofh.it>
In reply to#1225689
Cc kexec list.

On 09/16/15 at 10:58am, yanjiang.jin@windriver.com wrote:
> From: Yanjiang Jin <yanjiang.jin@windriver.com>
> 
> 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);     \
>                        ^
> 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@windriver.com>
> ---
>  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;
> -- 
> 1.9.1
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1225980

FromMinfei Huang <mhuang@redhat.com>
Date2015-09-16 12:40 +0200
Message-ID<q9ii6-1QE-3@gated-at.bofh.it>
In reply to#1225689
On 09/16/15 at 10:58am, yanjiang.jin@windriver.com wrote:
> From: Yanjiang Jin <yanjiang.jin@windriver.com>
> 
> 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);

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@windriver.com>
> ---
>  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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1225992

FromMinfei Huang <mhuang@redhat.com>
Date2015-09-16 12:50 +0200
Message-ID<q9irM-226-25@gated-at.bofh.it>
In reply to#1225980
Ccing kexec maillist.

On 09/16/15 at 06:39pm, Minfei Huang wrote:
> On 09/16/15 at 10:58am, yanjiang.jin@windriver.com wrote:
> > From: Yanjiang Jin <yanjiang.jin@windriver.com>
> > 
> > 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);
> 
> 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@windriver.com>
> > ---
> >  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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1226803

Fromyjin <yanjiang.jin@windriver.com>
Date2015-09-17 11:40 +0200
Message-ID<q9DPA-7XC-5@gated-at.bofh.it>
In reply to#1225980
On 2015年09月16日 18:39, Minfei Huang wrote:
> On 09/16/15 at 10:58am, yanjiang.jin@windriver.com wrote:
>> From: Yanjiang Jin <yanjiang.jin@windriver.com>
>>
>> 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@windriver.com>
>> ---
>>   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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1227571

FromMinfei Huang <mhuang@redhat.com>
Date2015-09-18 07:50 +0200
Message-ID<q9WIy-1Wn-5@gated-at.bofh.it>
In reply to#1226803
On 09/17/15 at 05:32pm, yjin wrote:
> 
> On 2015年09月16日 18:39, Minfei Huang wrote:
> >On 09/16/15 at 10:58am, yanjiang.jin@windriver.com wrote:
> >>From: Yanjiang Jin <yanjiang.jin@windriver.com>
> >>
> >>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:-)

Without the Maro define, elfhdr is not the struct in the code source.
Thus there is some unconvenience for people to read the code, if there
is another thought to fix this issue. 

Please do the converting in the Maro, and repost the new version.

Thanks
Minfei

> 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@windriver.com>
> >>---
> >>  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;
> 
> 
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web