linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86/vm86: fix compilation warning on a unused variable
@ 2016-12-08  4:38 Jérémy Lefaure
  2016-12-08  8:33 ` Borislav Petkov
  2016-12-08 10:50 ` Kirill A. Shutemov
  0 siblings, 2 replies; 15+ messages in thread
From: Jérémy Lefaure @ 2016-12-08  4:38 UTC (permalink / raw)
  To: x86, Borislav Petkov, Kirill A. Shutemov
  Cc: linux-kernel, Jérémy Lefaure

When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
stub. In such case, vma is unused and a compiler raises a warning:

arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
[-Wunused-variable]
   struct vm_area_struct *vma = find_vma(mm, 0xA0000);
                             ^~~
Adding __maybe_unused in the vma declaration fixes this warning.

In addition, checking if CONFIG_TRANSPARENT_HUGEPAGE is enabled avoids
calling find_vma function for nothing.

Signed-off-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
---
 arch/x86/kernel/vm86_32.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index 01f30e5..0813b76 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -176,8 +176,9 @@ static void mark_screen_rdonly(struct mm_struct *mm)
 		goto out;
 	pmd = pmd_offset(pud, 0xA0000);
 
-	if (pmd_trans_huge(*pmd)) {
-		struct vm_area_struct *vma = find_vma(mm, 0xA0000);
+	if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && pmd_trans_huge(*pmd)) {
+		struct vm_area_struct __maybe_unused *vma = find_vma(mm,
+								     0xA0000);
 		split_huge_pmd(vma, pmd, 0xA0000);
 	}
 	if (pmd_none_or_clear_bad(pmd))
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-08  4:38 [PATCH] x86/vm86: fix compilation warning on a unused variable Jérémy Lefaure
@ 2016-12-08  8:33 ` Borislav Petkov
  2016-12-08 17:51   ` Jérémy Lefaure
  2016-12-08 10:50 ` Kirill A. Shutemov
  1 sibling, 1 reply; 15+ messages in thread
From: Borislav Petkov @ 2016-12-08  8:33 UTC (permalink / raw)
  To: Jérémy Lefaure; +Cc: x86, Kirill A. Shutemov, linux-kernel

On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:
> When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> stub. In such case, vma is unused and a compiler raises a warning:
> 
> arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> [-Wunused-variable]
>    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
>                              ^~~
> Adding __maybe_unused in the vma declaration fixes this warning.
> 
> In addition, checking if CONFIG_TRANSPARENT_HUGEPAGE is enabled avoids
> calling find_vma function for nothing.
> 
> Signed-off-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
> ---
>  arch/x86/kernel/vm86_32.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
> index 01f30e5..0813b76 100644
> --- a/arch/x86/kernel/vm86_32.c
> +++ b/arch/x86/kernel/vm86_32.c
> @@ -176,8 +176,9 @@ static void mark_screen_rdonly(struct mm_struct *mm)
>  		goto out;
>  	pmd = pmd_offset(pud, 0xA0000);
>  
> -	if (pmd_trans_huge(*pmd)) {
> -		struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> +	if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && pmd_trans_huge(*pmd)) {
> +		struct vm_area_struct __maybe_unused *vma = find_vma(mm,
> +								     0xA0000);

So wouldn't the __maybe_unused alone without changing the if-condition
fix the warning too?

-- 
Regards/Gruss,
    Boris.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
-- 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-08  4:38 [PATCH] x86/vm86: fix compilation warning on a unused variable Jérémy Lefaure
  2016-12-08  8:33 ` Borislav Petkov
@ 2016-12-08 10:50 ` Kirill A. Shutemov
  2016-12-08 11:44   ` Kirill A. Shutemov
  2016-12-08 18:25   ` Jérémy Lefaure
  1 sibling, 2 replies; 15+ messages in thread
From: Kirill A. Shutemov @ 2016-12-08 10:50 UTC (permalink / raw)
  To: Jérémy Lefaure; +Cc: x86, Borislav Petkov, linux-kernel

On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:
> When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> stub. In such case, vma is unused and a compiler raises a warning:
> 
> arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> [-Wunused-variable]
>    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
>                              ^~~
> Adding __maybe_unused in the vma declaration fixes this warning.

Hm. pmd_trans_huge() is zero if CONFIG_TRANSPARENT_HUGEPAGE is not set.
Compiler should get rid of whole block of code under the 'if'.

Could you share your kernel config which triggers the warning?
And what compiler do you use?

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-08 10:50 ` Kirill A. Shutemov
@ 2016-12-08 11:44   ` Kirill A. Shutemov
  2016-12-08 18:25   ` Jérémy Lefaure
  1 sibling, 0 replies; 15+ messages in thread
From: Kirill A. Shutemov @ 2016-12-08 11:44 UTC (permalink / raw)
  To: Jérémy Lefaure; +Cc: x86, Borislav Petkov, linux-kernel

On Thu, Dec 08, 2016 at 01:50:11PM +0300, Kirill A. Shutemov wrote:
> On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:
> > When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> > stub. In such case, vma is unused and a compiler raises a warning:
> > 
> > arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> > arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> > [-Wunused-variable]
> >    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> >                              ^~~
> > Adding __maybe_unused in the vma declaration fixes this warning.
> 
> Hm. pmd_trans_huge() is zero if CONFIG_TRANSPARENT_HUGEPAGE is not set.
> Compiler should get rid of whole block of code under the 'if'.
> 
> Could you share your kernel config which triggers the warning?
> And what compiler do you use?

Okay, I see the problem. It still doesn't make sense. Why would compiler
check for unused warnings before dropping unused code.

What about something like this, instead:

diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index 6f14de45b5ce..b538452a127e 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -180,7 +180,7 @@ static inline int split_huge_page(struct page *page)
 }
 static inline void deferred_split_huge_page(struct page *page) {}
 #define split_huge_pmd(__vma, __pmd, __address)        \
-       do { } while (0)
+       do { (void)__vma; } while (0)

 static inline void split_huge_pmd_address(struct vm_area_struct *vma,
                unsigned long address, bool freeze, struct page *page) {}
-- 
 Kirill A. Shutemov

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-08  8:33 ` Borislav Petkov
@ 2016-12-08 17:51   ` Jérémy Lefaure
  0 siblings, 0 replies; 15+ messages in thread
From: Jérémy Lefaure @ 2016-12-08 17:51 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: x86, Kirill A. Shutemov, linux-kernel

On Thu, 8 Dec 2016 09:33:05 +0100
Borislav Petkov <bp@suse.de> wrote:

> On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:
> > When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> > stub. In such case, vma is unused and a compiler raises a warning:
> > 
> > arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> > arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> > [-Wunused-variable]
> >    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> >                              ^~~
> > Adding __maybe_unused in the vma declaration fixes this warning.
> > 
> > In addition, checking if CONFIG_TRANSPARENT_HUGEPAGE is enabled avoids
> > calling find_vma function for nothing.
> > 
> > Signed-off-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
> > ---
> >  arch/x86/kernel/vm86_32.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
> > index 01f30e5..0813b76 100644
> > --- a/arch/x86/kernel/vm86_32.c
> > +++ b/arch/x86/kernel/vm86_32.c
> > @@ -176,8 +176,9 @@ static void mark_screen_rdonly(struct mm_struct *mm)
> >  		goto out;
> >  	pmd = pmd_offset(pud, 0xA0000);
> >  
> > -	if (pmd_trans_huge(*pmd)) {
> > -		struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> > +	if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && pmd_trans_huge(*pmd)) {
> > +		struct vm_area_struct __maybe_unused *vma = find_vma(mm,
> > +								     0xA0000);  
> 
> So wouldn't the __maybe_unused alone without changing the if-condition
> fix the warning too?
> 

Yes it will. I did not see that pmd_trans_huge returns 0 if
CONFIG_TRANSPARENT_HUGEPAGE is disabled. So you're right, the
IS_ENABLED(...) in the condition is useless.

Thanks,
Jérémy

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-08 10:50 ` Kirill A. Shutemov
  2016-12-08 11:44   ` Kirill A. Shutemov
@ 2016-12-08 18:25   ` Jérémy Lefaure
  2016-12-12 14:52     ` Kirill A. Shutemov
  1 sibling, 1 reply; 15+ messages in thread
From: Jérémy Lefaure @ 2016-12-08 18:25 UTC (permalink / raw)
  To: Kirill A. Shutemov; +Cc: x86, Borislav Petkov, linux-kernel

On Thu, 8 Dec 2016 13:50:11 +0300
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> wrote:

> On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:
> > When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> > stub. In such case, vma is unused and a compiler raises a warning:
> > 
> > arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> > arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> > [-Wunused-variable]
> >    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> >                              ^~~
> > Adding __maybe_unused in the vma declaration fixes this warning.  
> 
> Hm. pmd_trans_huge() is zero if CONFIG_TRANSPARENT_HUGEPAGE is not set.
> Compiler should get rid of whole block of code under the 'if'.
> 
> Could you share your kernel config which triggers the warning?
> And what compiler do you use?
> 

After a `make allnoconfig`, I enable "Legacy VM86 support" and nothing
else. I tested with 2 compilers, gcc 4.9.2 (on debian jessie) and gcc
6.2.1 (on archlinux).

Actually, the compiler does not raise warnings on complete build (`make
mrproper`, configuration and `make`) but only on partial build (`make
arch/x86/kernel/vm86_32.o` or `touch arch/x86/kernel/vm86_32.c &&
make`). So maybe it is a compiler issue ?

The solution you propose in your other email (adding "(void)__vma;" in
the no-op split_huge_pmd) seems to fix the warnings on partial build.

Thanks,
Jérémy

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-08 18:25   ` Jérémy Lefaure
@ 2016-12-12 14:52     ` Kirill A. Shutemov
  2016-12-17  4:19       ` Jérémy Lefaure
  0 siblings, 1 reply; 15+ messages in thread
From: Kirill A. Shutemov @ 2016-12-12 14:52 UTC (permalink / raw)
  To: Jérémy Lefaure
  Cc: Kirill A. Shutemov, x86, Borislav Petkov, linux-kernel

On Thu, Dec 08, 2016 at 01:25:37PM -0500, Jérémy Lefaure wrote:
> On Thu, 8 Dec 2016 13:50:11 +0300
> "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> wrote:
> 
> > On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:
> > > When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> > > stub. In such case, vma is unused and a compiler raises a warning:
> > > 
> > > arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> > > arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> > > [-Wunused-variable]
> > >    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> > >                              ^~~
> > > Adding __maybe_unused in the vma declaration fixes this warning.  
> > 
> > Hm. pmd_trans_huge() is zero if CONFIG_TRANSPARENT_HUGEPAGE is not set.
> > Compiler should get rid of whole block of code under the 'if'.
> > 
> > Could you share your kernel config which triggers the warning?
> > And what compiler do you use?
> > 
> 
> After a `make allnoconfig`, I enable "Legacy VM86 support" and nothing
> else. I tested with 2 compilers, gcc 4.9.2 (on debian jessie) and gcc
> 6.2.1 (on archlinux).
> 
> Actually, the compiler does not raise warnings on complete build (`make
> mrproper`, configuration and `make`) but only on partial build (`make
> arch/x86/kernel/vm86_32.o` or `touch arch/x86/kernel/vm86_32.c &&
> make`). So maybe it is a compiler issue ?
> 
> The solution you propose in your other email (adding "(void)__vma;" in
> the no-op split_huge_pmd) seems to fix the warnings on partial build.

This doesn't make any sense, but this works too:

diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index e339717af265..63ddc598f5a9 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -160,6 +160,7 @@ void save_v86_state(struct kernel_vm86_regs *regs, int retval)

 static void mark_screen_rdonly(struct mm_struct *mm)
 {
+       struct vm_area_struct *vma;
        pgd_t *pgd;
        p4d_t *p4d;
        pud_t *pud;
@@ -181,7 +182,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
        pmd = pmd_offset(pud, 0xA0000);

        if (pmd_trans_huge(*pmd)) {
-               struct vm_area_struct *vma = find_vma(mm, 0xA0000);
+               vma = find_vma(mm, 0xA0000);
                split_huge_pmd(vma, pmd, 0xA0000);
        }
        if (pmd_none_or_clear_bad(pmd))
-- 
 Kirill A. Shutemov

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-12 14:52     ` Kirill A. Shutemov
@ 2016-12-17  4:19       ` Jérémy Lefaure
  2017-02-12 14:01         ` Borislav Petkov
  0 siblings, 1 reply; 15+ messages in thread
From: Jérémy Lefaure @ 2016-12-17  4:19 UTC (permalink / raw)
  To: Kirill A. Shutemov; +Cc: Kirill A. Shutemov, x86, Borislav Petkov, linux-kernel

On Mon, 12 Dec 2016 17:52:50 +0300
"Kirill A. Shutemov" <kirill@shutemov.name> wrote:

> On Thu, Dec 08, 2016 at 01:25:37PM -0500, Jérémy Lefaure wrote:
> > On Thu, 8 Dec 2016 13:50:11 +0300
> > "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> wrote:
> >   
> > > On Wed, Dec 07, 2016 at 11:38:33PM -0500, Jérémy Lefaure wrote:  
> > > > When CONFIG_TRANSPARENT_HUGEPAGE is disabled, split_huge_pmd is a no-op
> > > > stub. In such case, vma is unused and a compiler raises a warning:
> > > > 
> > > > arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> > > > arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> > > > [-Wunused-variable]
> > > >    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> > > >                              ^~~
> > > > Adding __maybe_unused in the vma declaration fixes this warning.    
> > > 
> > > Hm. pmd_trans_huge() is zero if CONFIG_TRANSPARENT_HUGEPAGE is not set.
> > > Compiler should get rid of whole block of code under the 'if'.
> > > 
> > > Could you share your kernel config which triggers the warning?
> > > And what compiler do you use?
> > >   
> > 
> > After a `make allnoconfig`, I enable "Legacy VM86 support" and nothing
> > else. I tested with 2 compilers, gcc 4.9.2 (on debian jessie) and gcc
> > 6.2.1 (on archlinux).
> > 
> > Actually, the compiler does not raise warnings on complete build (`make
> > mrproper`, configuration and `make`) but only on partial build (`make
> > arch/x86/kernel/vm86_32.o` or `touch arch/x86/kernel/vm86_32.c &&
> > make`). So maybe it is a compiler issue ?
> > 
Sorry, forget about this part, it's false. I may have tested too
quickly and missed something.

> > The solution you propose in your other email (adding "(void)__vma;" in
> > the no-op split_huge_pmd) seems to fix the warnings on partial build.  
> 
> This doesn't make any sense, but this works too:
> 
I don't know why gcc raises a warning on that even if it is not used.
Anyway, I'm sure that the warning is reproducible. Both of your
solutions fix the issue.

> diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
> index e339717af265..63ddc598f5a9 100644
> --- a/arch/x86/kernel/vm86_32.c
> +++ b/arch/x86/kernel/vm86_32.c
> @@ -160,6 +160,7 @@ void save_v86_state(struct kernel_vm86_regs *regs, int retval)
> 
>  static void mark_screen_rdonly(struct mm_struct *mm)
>  {
> +       struct vm_area_struct *vma;
>         pgd_t *pgd;
>         p4d_t *p4d;
>         pud_t *pud;
> @@ -181,7 +182,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
>         pmd = pmd_offset(pud, 0xA0000);
> 
>         if (pmd_trans_huge(*pmd)) {
> -               struct vm_area_struct *vma = find_vma(mm, 0xA0000);
> +               vma = find_vma(mm, 0xA0000);
>                 split_huge_pmd(vma, pmd, 0xA0000);
>         }
>         if (pmd_none_or_clear_bad(pmd))

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2016-12-17  4:19       ` Jérémy Lefaure
@ 2017-02-12 14:01         ` Borislav Petkov
  2017-02-13  4:20           ` Jérémy Lefaure
  0 siblings, 1 reply; 15+ messages in thread
From: Borislav Petkov @ 2017-02-12 14:01 UTC (permalink / raw)
  To: Jérémy Lefaure
  Cc: Kirill A. Shutemov, Kirill A. Shutemov, x86, linux-kernel

On Fri, Dec 16, 2016 at 11:19:16PM -0500, Jérémy Lefaure wrote:
> I don't know why gcc raises a warning on that even if it is not used.
> Anyway, I'm sure that the warning is reproducible. Both of your
> solutions fix the issue.

I still see the warning here. You wanna choose one solution, write a
proper patch and send it out?

-- 
Regards/Gruss,
    Boris.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
-- 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2017-02-12 14:01         ` Borislav Petkov
@ 2017-02-13  4:20           ` Jérémy Lefaure
  2017-02-13 10:03             ` Borislav Petkov
  0 siblings, 1 reply; 15+ messages in thread
From: Jérémy Lefaure @ 2017-02-13  4:20 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: Kirill A. Shutemov, Kirill A. Shutemov, x86, linux-kernel

On Sun, 12 Feb 2017 15:01:55 +0100
Borislav Petkov <bp@suse.de> wrote:

> On Fri, Dec 16, 2016 at 11:19:16PM -0500, Jérémy Lefaure wrote:
> > I don't know why gcc raises a warning on that even if it is not used.
> > Anyway, I'm sure that the warning is reproducible. Both of your
> > solutions fix the issue.  
> 
> I still see the warning here. You wanna choose one solution, write a
> proper patch and send it out?
> 

I am not an expert in linux patch process but I think that as Kirill
wrote the patch, he should be the author of the patch and me I should
be in the "Reported-by" tag, isn't it ?

Regards,
Jérémy

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix compilation warning on a unused variable
  2017-02-13  4:20           ` Jérémy Lefaure
@ 2017-02-13 10:03             ` Borislav Petkov
  2017-02-13 12:52               ` [PATCH] x86/vm86: fix unused variable warning if THP is disabled Kirill A. Shutemov
  0 siblings, 1 reply; 15+ messages in thread
From: Borislav Petkov @ 2017-02-13 10:03 UTC (permalink / raw)
  To: Jérémy Lefaure, Kirill A. Shutemov
  Cc: Kirill A. Shutemov, x86, linux-kernel

On Sun, Feb 12, 2017 at 11:20:07PM -0500, Jérémy Lefaure wrote:
> I am not an expert in linux patch process but I think that as Kirill
> wrote the patch, he should be the author of the patch and me I should
> be in the "Reported-by" tag, isn't it ?

It sounds to me like he doesn't care all that much but sure, let's see
what he has to say.

-- 
Regards/Gruss,
    Boris.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
-- 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH] x86/vm86: fix unused variable warning if THP is disabled.
  2017-02-13 10:03             ` Borislav Petkov
@ 2017-02-13 12:52               ` Kirill A. Shutemov
  2017-02-13 15:49                 ` Thomas Gleixner
                                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Kirill A. Shutemov @ 2017-02-13 12:52 UTC (permalink / raw)
  To: Jérémy Lefaure, x86, Borislav Petkov
  Cc: linux-kernel, Kirill A. Shutemov

GCC complaines on unused variable 'vma' in mark_screen_rdonly() if THP
is disalbed:

arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
[-Wunused-variable]
   struct vm_area_struct *vma = find_vma(mm, 0xA0000);
                             ^~~
It shoudln't really. The whole block has to be eliminated as
pmd_trans_huge() is 0 if THP is disabled.

Anyway, this trick seems make GCC happy.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reported-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
---
 arch/x86/kernel/vm86_32.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index ec5d7545e6dc..8cdbd32ededc 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -165,6 +165,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
 	pmd_t *pmd;
 	pte_t *pte;
 	spinlock_t *ptl;
+	struct vm_area_struct *vma;
 	int i;
 
 	down_write(&mm->mmap_sem);
@@ -177,7 +178,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
 	pmd = pmd_offset(pud, 0xA0000);
 
 	if (pmd_trans_huge(*pmd)) {
-		struct vm_area_struct *vma = find_vma(mm, 0xA0000);
+		vma = find_vma(mm, 0xA0000);
 		split_huge_pmd(vma, pmd, 0xA0000);
 	}
 	if (pmd_none_or_clear_bad(pmd))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix unused variable warning if THP is disabled.
  2017-02-13 12:52               ` [PATCH] x86/vm86: fix unused variable warning if THP is disabled Kirill A. Shutemov
@ 2017-02-13 15:49                 ` Thomas Gleixner
  2017-02-13 17:47                 ` Borislav Petkov
  2017-02-13 18:07                 ` [tip:x86/urgent] x86/vm86: Fix " tip-bot for Kirill A. Shutemov
  2 siblings, 0 replies; 15+ messages in thread
From: Thomas Gleixner @ 2017-02-13 15:49 UTC (permalink / raw)
  To: Kirill A. Shutemov; +Cc: Jérémy Lefaure, x86, Borislav Petkov, LKML

[-- Attachment #1: Type: text/plain, Size: 532 bytes --]

On Mon, 13 Feb 2017, Kirill A. Shutemov wrote:

> GCC complaines on unused variable 'vma' in mark_screen_rdonly() if THP
> is disalbed:
> 
> arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> [-Wunused-variable]
>    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
>                              ^~~
> It shoudln't really. The whole block has to be eliminated as
> pmd_trans_huge() is 0 if THP is disabled.
 
Indeed. That's outright silly. 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] x86/vm86: fix unused variable warning if THP is disabled.
  2017-02-13 12:52               ` [PATCH] x86/vm86: fix unused variable warning if THP is disabled Kirill A. Shutemov
  2017-02-13 15:49                 ` Thomas Gleixner
@ 2017-02-13 17:47                 ` Borislav Petkov
  2017-02-13 18:07                 ` [tip:x86/urgent] x86/vm86: Fix " tip-bot for Kirill A. Shutemov
  2 siblings, 0 replies; 15+ messages in thread
From: Borislav Petkov @ 2017-02-13 17:47 UTC (permalink / raw)
  To: Kirill A. Shutemov; +Cc: Jérémy Lefaure, x86, linux-kernel

On Mon, Feb 13, 2017 at 03:52:28PM +0300, Kirill A. Shutemov wrote:
> GCC complaines on unused variable 'vma' in mark_screen_rdonly() if THP
> is disalbed:
> 
> arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
> arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
> [-Wunused-variable]
>    struct vm_area_struct *vma = find_vma(mm, 0xA0000);
>                              ^~~
> It shoudln't really. The whole block has to be eliminated as
> pmd_trans_huge() is 0 if THP is disabled.
> 
> Anyway, this trick seems make GCC happy.

Please run this commit message through a spellchecker - I see at least
three typos.

> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reported-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>

Tested-by: Borislav Petkov <bp@suse.de>

-- 
Regards/Gruss,
    Boris.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
-- 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [tip:x86/urgent] x86/vm86: Fix unused variable warning if THP is disabled
  2017-02-13 12:52               ` [PATCH] x86/vm86: fix unused variable warning if THP is disabled Kirill A. Shutemov
  2017-02-13 15:49                 ` Thomas Gleixner
  2017-02-13 17:47                 ` Borislav Petkov
@ 2017-02-13 18:07                 ` tip-bot for Kirill A. Shutemov
  2 siblings, 0 replies; 15+ messages in thread
From: tip-bot for Kirill A. Shutemov @ 2017-02-13 18:07 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: tglx, jeremy.lefaure, carlos, kirill.shutemov, hpa, mingo,
	linux-kernel, bp

Commit-ID:  3ba5b5ea7dc3a10ef50819b43a9f8de2705f4eec
Gitweb:     http://git.kernel.org/tip/3ba5b5ea7dc3a10ef50819b43a9f8de2705f4eec
Author:     Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
AuthorDate: Mon, 13 Feb 2017 15:52:28 +0300
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Mon, 13 Feb 2017 19:04:38 +0100

x86/vm86: Fix unused variable warning if THP is disabled

GCC complains about unused variable 'vma' in mark_screen_rdonly() if THP is
disabled:

arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
[-Wunused-variable]
   struct vm_area_struct *vma = find_vma(mm, 0xA0000);

That's silly. pmd_trans_huge() resolves to 0 when THP is disabled, so the
whole block should be eliminated.

Moving the variable declaration outside the if() block shuts GCC up.

Reported-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Tested-by: Borislav Petkov <bp@suse.de>
Cc: Carlos O'Donell <carlos@redhat.com>
Link: http://lkml.kernel.org/r/20170213125228.63645-1-kirill.shutemov@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 arch/x86/kernel/vm86_32.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index ec5d754..0442d98 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -160,11 +160,12 @@ void save_v86_state(struct kernel_vm86_regs *regs, int retval)
 
 static void mark_screen_rdonly(struct mm_struct *mm)
 {
+	struct vm_area_struct *vma;
+	spinlock_t *ptl;
 	pgd_t *pgd;
 	pud_t *pud;
 	pmd_t *pmd;
 	pte_t *pte;
-	spinlock_t *ptl;
 	int i;
 
 	down_write(&mm->mmap_sem);
@@ -177,7 +178,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
 	pmd = pmd_offset(pud, 0xA0000);
 
 	if (pmd_trans_huge(*pmd)) {
-		struct vm_area_struct *vma = find_vma(mm, 0xA0000);
+		vma = find_vma(mm, 0xA0000);
 		split_huge_pmd(vma, pmd, 0xA0000);
 	}
 	if (pmd_none_or_clear_bad(pmd))

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-02-13 18:08 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-08  4:38 [PATCH] x86/vm86: fix compilation warning on a unused variable Jérémy Lefaure
2016-12-08  8:33 ` Borislav Petkov
2016-12-08 17:51   ` Jérémy Lefaure
2016-12-08 10:50 ` Kirill A. Shutemov
2016-12-08 11:44   ` Kirill A. Shutemov
2016-12-08 18:25   ` Jérémy Lefaure
2016-12-12 14:52     ` Kirill A. Shutemov
2016-12-17  4:19       ` Jérémy Lefaure
2017-02-12 14:01         ` Borislav Petkov
2017-02-13  4:20           ` Jérémy Lefaure
2017-02-13 10:03             ` Borislav Petkov
2017-02-13 12:52               ` [PATCH] x86/vm86: fix unused variable warning if THP is disabled Kirill A. Shutemov
2017-02-13 15:49                 ` Thomas Gleixner
2017-02-13 17:47                 ` Borislav Petkov
2017-02-13 18:07                 ` [tip:x86/urgent] x86/vm86: Fix " tip-bot for Kirill A. Shutemov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).