On Fri, Jul 12, 2024, at 10:37, Masahiro Yamada wrote: > On Thu, Jul 4, 2024 at 11:37 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote: >> --- a/arch/um/include/asm/Kbuild >> +++ b/arch/um/include/asm/Kbuild >> @@ -1,5 +1,4 @@ >> # SPDX-License-Identifier: GPL-2.0 >> -generic-y += bpf_perf_event.h >> generic-y += bug.h >> generic-y += compat.h >> generic-y += current.h >> diff --git a/arch/um/include/asm/bpf_perf_event.h b/arch/um/include/asm/bpf_perf_event.h >> new file mode 100644 >> index 000000000000..0a30420c83de >> --- /dev/null >> +++ b/arch/um/include/asm/bpf_perf_event.h >> @@ -0,0 +1,3 @@ >> +/* SPDX-License-Identifier: GPL-2.0 */ >> + >> +#include <asm-generic/bpf_perf_event.h> > > I guess this is a step backward. > > Technically, kernel-space asm/*.h files are allowed to > wrap UAPI <asm-generic/*.h>. > There is no reason why we ban generic-y for doing this, > whereas check-in source is allowed. I think in this case, the simplicity is the more important argument: this is the only case we have of wrapping a uapi header from a non-uapi header, and no other architecture would need to do this. The way the syscall-y rule works relies on enforcing some checking for existing asm-generic headers, and I could extend it to allow this special case, but that would make the Makefile rule less readable in exchange for avoiding effectively a one-line file. Arnd