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; }