Re: ./include/asm-generic/tlb.h:629:10: error: parameter 'ptep' set but not used

From: David Hildenbrand
Date: Tue Apr 16 2024 - 09:51:48 EST


On 16.04.24 12:26, Miguel Ojeda wrote:
Hi David, Arnd, LoongArch,

In a linux-next defconfig LLVM=1 build today I got:

./include/asm-generic/tlb.h:629:10: error: parameter 'ptep' set
but not used [-Werror,-Wunused-but-set-parameter]
629 | pte_t *ptep, unsigned int nr, unsigned long address)
| ^

Indeed, in loongarch, `__tlb_remove_tlb_entry` does not do anything.
This seems the same that Arnd reported for arm64:

https://lore.kernel.org/all/20240221154549.2026073-1-arnd@xxxxxxxxxx/

So perhaps the loongarch's one should also be changed into an static inline?

4d5bf0b6183f79ea361dd506365d2a471270735c is already part of v6.9-rc1. How come
we see that only now on linux-next?

I assume we should see the same on upstream Linux with LLVM=1, correct?

If so, we should likely just drop that completely and rely on the asm-generic one:

diff --git a/arch/loongarch/include/asm/tlb.h b/arch/loongarch/include/asm/tlb.h
index da7a3b5b9374a..e071f5e9e8580 100644
--- a/arch/loongarch/include/asm/tlb.h
+++ b/arch/loongarch/include/asm/tlb.h
@@ -132,8 +132,6 @@ static __always_inline void invtlb_all(u32 op, u32 info, u64 addr)
);
}
-#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
-
static void tlb_flush(struct mmu_gather *tlb);
#define tlb_flush tlb_flush



Thanks!

--
Cheers,

David / dhildenb