Re: [linux-next:master 1570/2472] mm/kasan/init.c:318:9: warning: variable 'pud' set but not used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 3 Nov 2020 at 01:17, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
>
> On Mon, Nov 2, 2020 at 12:32 AM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> >    mm/kasan/init.c: In function 'kasan_free_pud':
> > >> mm/kasan/init.c:318:9: warning: variable 'pud' set but not used [-Wunused-but-set-variable]
> >      318 |  pud_t *pud;
> >          |         ^~~
>
> So this is because
> arch/arm/include/asm/pgtable-2level.h has:
> #define pud_none(pud)           (0)
> because of the way that PMDs are folded into the PUD.
> (See the comment in the file.)
>
> This is not liked by KASan because it looks like the pud
> variable is unused.
>
> Any suggestions? Should it be:
> #define pud_none(pud)          (!pud_val(pud))
> Like most other archs?
>
> I also toyed with just putting __maybe_unused into the kasan init.
>
> Any other ways to solve this?
>

What about

diff --git a/mm/kasan/init.c b/mm/kasan/init.c
index fe6be0be1f76..7c3eb1f5a439 100644
--- a/mm/kasan/init.c
+++ b/mm/kasan/init.c
@@ -315,12 +315,10 @@ static void kasan_free_pmd(pmd_t *pmd_start, pud_t *pud)

 static void kasan_free_pud(pud_t *pud_start, p4d_t *p4d)
 {
-       pud_t *pud;
        int i;

        for (i = 0; i < PTRS_PER_PUD; i++) {
-               pud = pud_start + i;
-               if (!pud_none(*pud))
+               if (!pud_none(pud_start[i]))
                        return;
        }




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux