diff mbox series

[linux-5.15.y] RISC-V: Fix up a cherry-pick warning in setup_vm_final()

Message ID 20230429224330.18699-1-palmer@rivosinc.com (mailing list archive)
State Not Applicable
Headers show
Series [linux-5.15.y] RISC-V: Fix up a cherry-pick warning in setup_vm_final() | expand

Checks

Context Check Description
conchuod/tree_selection fail Failed to apply to next/pending-fixes or riscv/for-next

Commit Message

Palmer Dabbelt April 29, 2023, 10:43 p.m. UTC
This triggers a -Wdeclaration-after-statement as the code has changed a
bit since upstream.  It might be better to hoist the whole block up, but
this is a smaller change so I went with it.

arch/riscv/mm/init.c:755:16: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
            unsigned long idx = pgd_index(__fix_to_virt(FIX_FDT));
                          ^
    1 warning generated.

Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/oe-kbuild-all/202304300429.SXZOA5up-lkp@intel.com/
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
I haven't even build tested this one, but it looks simple enough that I figured
I'd just send it.  Be warned, though: I broke glibc and missed a merged
conflict yesterday...
---
 arch/riscv/mm/init.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Alexandre Ghiti May 1, 2023, 7:33 a.m. UTC | #1
Hi Palmer,

On 4/30/23 00:43, Palmer Dabbelt wrote:
> This triggers a -Wdeclaration-after-statement as the code has changed a
> bit since upstream.  It might be better to hoist the whole block up, but
> this is a smaller change so I went with it.
>
> arch/riscv/mm/init.c:755:16: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
>              unsigned long idx = pgd_index(__fix_to_virt(FIX_FDT));
>                            ^
>      1 warning generated.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Link: https://lore.kernel.org/oe-kbuild-all/202304300429.SXZOA5up-lkp@intel.com/
> Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
> ---
> I haven't even build tested this one, but it looks simple enough that I figured
> I'd just send it.  Be warned, though: I broke glibc and missed a merged
> conflict yesterday...
> ---
>   arch/riscv/mm/init.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index e800d7981e99..8d67f43f1865 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -717,6 +717,7 @@ static void __init setup_vm_final(void)
>   	uintptr_t va, map_size;
>   	phys_addr_t pa, start, end;
>   	u64 i;
> +	unsigned long idx;
>   
>   	/**
>   	 * MMU is enabled at this point. But page table setup is not complete yet.
> @@ -735,7 +736,7 @@ static void __init setup_vm_final(void)
>   	 * directly in swapper_pg_dir in addition to the pgd entry that points
>   	 * to fixmap_pte.
>   	 */
> -	unsigned long idx = pgd_index(__fix_to_virt(FIX_FDT));
> +	idx = pgd_index(__fix_to_virt(FIX_FDT));
>   
>   	set_pgd(&swapper_pg_dir[idx], early_pg_dir[idx]);
>   #endif

The above results to in rv64:

../arch/riscv/mm/init.c: In function ‘setup_vm_final’:
../arch/riscv/mm/init.c:720:16: warning: unused variable ‘idx’ 
[-Wunused-variable]
   720 |  unsigned long idx;


The following fixes this warning:


diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 8d67f43f1865..e69d82d573f1 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -717,7 +717,7 @@ static void __init setup_vm_final(void)
         uintptr_t va, map_size;
         phys_addr_t pa, start, end;
         u64 i;
-       unsigned long idx;
+       unsigned long idx __maybe_unused;

         /**
          * MMU is enabled at this point. But page table setup is not 
complete yet.


Let me know if you want me to send a proper patch as I'm the one to 
blame here.

Thanks for your patch,

Alex
Greg KH May 6, 2023, 12:56 a.m. UTC | #2
On Mon, May 01, 2023 at 09:33:25AM +0200, Alexandre Ghiti wrote:
> Hi Palmer,
> 
> On 4/30/23 00:43, Palmer Dabbelt wrote:
> > This triggers a -Wdeclaration-after-statement as the code has changed a
> > bit since upstream.  It might be better to hoist the whole block up, but
> > this is a smaller change so I went with it.
> > 
> > arch/riscv/mm/init.c:755:16: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
> >              unsigned long idx = pgd_index(__fix_to_virt(FIX_FDT));
> >                            ^
> >      1 warning generated.
> > 
> > Reported-by: kernel test robot <lkp@intel.com>
> > Link: https://lore.kernel.org/oe-kbuild-all/202304300429.SXZOA5up-lkp@intel.com/
> > Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
> > ---
> > I haven't even build tested this one, but it looks simple enough that I figured
> > I'd just send it.  Be warned, though: I broke glibc and missed a merged
> > conflict yesterday...
> > ---
> >   arch/riscv/mm/init.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> > index e800d7981e99..8d67f43f1865 100644
> > --- a/arch/riscv/mm/init.c
> > +++ b/arch/riscv/mm/init.c
> > @@ -717,6 +717,7 @@ static void __init setup_vm_final(void)
> >   	uintptr_t va, map_size;
> >   	phys_addr_t pa, start, end;
> >   	u64 i;
> > +	unsigned long idx;
> >   	/**
> >   	 * MMU is enabled at this point. But page table setup is not complete yet.
> > @@ -735,7 +736,7 @@ static void __init setup_vm_final(void)
> >   	 * directly in swapper_pg_dir in addition to the pgd entry that points
> >   	 * to fixmap_pte.
> >   	 */
> > -	unsigned long idx = pgd_index(__fix_to_virt(FIX_FDT));
> > +	idx = pgd_index(__fix_to_virt(FIX_FDT));
> >   	set_pgd(&swapper_pg_dir[idx], early_pg_dir[idx]);
> >   #endif
> 
> The above results to in rv64:
> 
> ../arch/riscv/mm/init.c: In function ‘setup_vm_final’:
> ../arch/riscv/mm/init.c:720:16: warning: unused variable ‘idx’
> [-Wunused-variable]
>   720 |  unsigned long idx;
> 
> 
> The following fixes this warning:
> 
> 
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index 8d67f43f1865..e69d82d573f1 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -717,7 +717,7 @@ static void __init setup_vm_final(void)
>         uintptr_t va, map_size;
>         phys_addr_t pa, start, end;
>         u64 i;
> -       unsigned long idx;
> +       unsigned long idx __maybe_unused;
> 
>         /**
>          * MMU is enabled at this point. But page table setup is not
> complete yet.
> 
> 
> Let me know if you want me to send a proper patch as I'm the one to blame
> here.

As the original fix here will not work, a "correct" one might be best to
have :)

thanks,

greg k-h
diff mbox series

Patch

diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index e800d7981e99..8d67f43f1865 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -717,6 +717,7 @@  static void __init setup_vm_final(void)
 	uintptr_t va, map_size;
 	phys_addr_t pa, start, end;
 	u64 i;
+	unsigned long idx;
 
 	/**
 	 * MMU is enabled at this point. But page table setup is not complete yet.
@@ -735,7 +736,7 @@  static void __init setup_vm_final(void)
 	 * directly in swapper_pg_dir in addition to the pgd entry that points
 	 * to fixmap_pte.
 	 */
-	unsigned long idx = pgd_index(__fix_to_virt(FIX_FDT));
+	idx = pgd_index(__fix_to_virt(FIX_FDT));
 
 	set_pgd(&swapper_pg_dir[idx], early_pg_dir[idx]);
 #endif