Hi Masahiro, On Tue, Jan 08, 2019 at 08:38:27AM +0900, Masahiro Yamada wrote:
Most architectures do not export shmparam.h to user-space. $ find arch -name shmparam.h | sort arch/alpha/include/asm/shmparam.h arch/arc/include/asm/shmparam.h arch/arm64/include/asm/shmparam.h arch/arm/include/asm/shmparam.h arch/csky/include/asm/shmparam.h arch/ia64/include/asm/shmparam.h arch/mips/include/asm/shmparam.h arch/nds32/include/asm/shmparam.h arch/nios2/include/asm/shmparam.h arch/parisc/include/asm/shmparam.h arch/powerpc/include/asm/shmparam.h arch/s390/include/asm/shmparam.h arch/sh/include/asm/shmparam.h arch/sparc/include/asm/shmparam.h arch/x86/include/asm/shmparam.h arch/xtensa/include/asm/shmparam.h Strangely, some users of the asm-generic wrapper export shmparam.h $ git grep 'generic-y += shmparam.h' arch/c6x/include/uapi/asm/Kbuild:generic-y += shmparam.h arch/h8300/include/uapi/asm/Kbuild:generic-y += shmparam.h arch/hexagon/include/uapi/asm/Kbuild:generic-y += shmparam.h arch/m68k/include/uapi/asm/Kbuild:generic-y += shmparam.h arch/microblaze/include/uapi/asm/Kbuild:generic-y += shmparam.h arch/openrisc/include/uapi/asm/Kbuild:generic-y += shmparam.h arch/riscv/include/asm/Kbuild:generic-y += shmparam.h arch/unicore32/include/uapi/asm/Kbuild:generic-y += shmparam.h The newly added riscv correctly creates the asm-generic wrapper in the kernel space, but the others (c6x, h8300, hexagon, m68k, microblaze, openrisc, unicore32) create the one in the uapi directory. Digging into the git history, now I guess fcc8487d477a ("uapi: export all headers under uapi directories") was the misconversion. Prior to that commit, no architecture exported to shmparam.h As its commit description said, that commit exported shmparam.h for c6x, h8300, hexagon, m68k, openrisc, unicore32. 83f0124ad81e ("microblaze: remove asm-generic wrapper headers") accidentally exported shmparam.h for microblaze. This commit unexports shmparam.h for those architectures. There is no more reason to export include/uapi/asm-generic/shmparam.h, so it has been moved to include/asm-generic/shmparam.h Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> --- arch/c6x/include/asm/Kbuild | 1 + arch/c6x/include/uapi/asm/Kbuild | 1 - arch/h8300/include/asm/Kbuild | 1 + arch/h8300/include/uapi/asm/Kbuild | 1 - arch/hexagon/include/asm/Kbuild | 1 + arch/hexagon/include/uapi/asm/Kbuild | 1 - arch/m68k/include/asm/Kbuild | 1 + arch/m68k/include/uapi/asm/Kbuild | 1 - arch/microblaze/include/asm/Kbuild | 1 + arch/microblaze/include/uapi/asm/Kbuild | 1 - arch/openrisc/include/asm/Kbuild | 1 + arch/openrisc/include/uapi/asm/Kbuild | 1 - arch/unicore32/include/asm/Kbuild | 1 + arch/unicore32/include/uapi/asm/Kbuild | 1 - include/{uapi => }/asm-generic/shmparam.h | 0 15 files changed, 7 insertions(+), 7 deletions(-) rename include/{uapi => }/asm-generic/shmparam.h (100%)
[...]
diff --git a/arch/openrisc/include/asm/Kbuild b/arch/openrisc/include/asm/Kbuild index eb87cd8..1f04844b 100644 --- a/arch/openrisc/include/asm/Kbuild +++ b/arch/openrisc/include/asm/Kbuild @@ -34,6 +34,7 @@ generic-y += qrwlock_types.h generic-y += qrwlock.h generic-y += sections.h generic-y += segment.h +generic-y += shmparam.h generic-y += string.h generic-y += switch_to.h generic-y += topology.h diff --git a/arch/openrisc/include/uapi/asm/Kbuild b/arch/openrisc/include/uapi/asm/Kbuild index 6c6f630..0febf1a 100644 --- a/arch/openrisc/include/uapi/asm/Kbuild +++ b/arch/openrisc/include/uapi/asm/Kbuild @@ -1,5 +1,4 @@ include include/uapi/asm-generic/Kbuild.asm generic-y += kvm_para.h -generic-y += shmparam.h generic-y += ucontext.h
What is this patch based on? I tried to apply it to 5.0-rc1 and am having an issue with applying the arch/openrisc/include/uapi/asm/Kbuild part. $ ~/work/bin/am-incoming PATCH_arch_unexport_asm-shmparam.h_for_all_architectures.patch Applying: arch: unexport asm/shmparam.h for all architectures error: patch failed: arch/c6x/include/uapi/asm/Kbuild:1 error: arch/c6x/include/uapi/asm/Kbuild: patch does not apply error: patch failed: arch/h8300/include/uapi/asm/Kbuild:1 error: arch/h8300/include/uapi/asm/Kbuild: patch does not apply error: patch failed: arch/hexagon/include/uapi/asm/Kbuild:1 error: arch/hexagon/include/uapi/asm/Kbuild: patch does not apply error: patch failed: arch/m68k/include/uapi/asm/Kbuild:2 error: arch/m68k/include/uapi/asm/Kbuild: patch does not apply error: patch failed: arch/microblaze/include/uapi/asm/Kbuild:2 error: arch/microblaze/include/uapi/asm/Kbuild: patch does not apply error: patch failed: arch/openrisc/include/uapi/asm/Kbuild:1 error: arch/openrisc/include/uapi/asm/Kbuild: patch does not apply error: patch failed: arch/unicore32/include/uapi/asm/Kbuild:1 error: arch/unicore32/include/uapi/asm/Kbuild: patch does not apply Patch failed at 0001 arch: unexport asm/shmparam.h for all architectures hint: Use 'git am --show-current-patch' to see the failed patch It seems shmparam.h is not there. It was removed with the others in your ("d6e4b3e326d8") arch: remove redundant UAPI generic-y defines, commit a few days ago. Note, I can't compile 5.0-rc1 without the first part of this patch. So please get it merged asap :) -Stafford