arm64 build failed on 5.4
make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache aarch64-linux-gnu-gcc" O=build Image # ../drivers/clocksource/arm_arch_timer.c:484:4: error: ‘const struct arch_timer_erratum_workaround’ has no member named ‘disable_compat_vdso’ 484 | .disable_compat_vdso = true, | ^~~~~~~~~~~~~~~~~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: warning: initialization of ‘u32 (*)(void)’ {aka ‘unsigned int (*)(void)’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 484 | .disable_compat_vdso = true, | ^~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: note: (near initialization for ‘ool_workarounds[5].read_cntp_tval_el0’)
Could be this patch, arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 commit 4b661d6133c5d3a7c9aca0b4ee5a78c7766eff3f upstream.
ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to the virtual counter register are trapped and emulated by the kernel. This makes the vdso pretty pointless, and in some cases livelock prone.
Provide a workaround entry that limits the vdso to 64bit tasks.
Signed-off-by: Marc Zyngier maz@kernel.org Acked-by: Mark Rutland mark.rutland@arm.com Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20200706163802.1836732-4-maz@kernel.org Signed-off-by: Will Deacon will@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
ref: https://gitlab.com/Linaro/lkft/kernel-runs/-/jobs/638094006
On Tue, Jul 14, 2020 at 10:48:14PM +0530, Naresh Kamboju wrote:
arm64 build failed on 5.4
make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache aarch64-linux-gnu-gcc" O=build Image # ../drivers/clocksource/arm_arch_timer.c:484:4: error: ‘const struct arch_timer_erratum_workaround’ has no member named ‘disable_compat_vdso’ 484 | .disable_compat_vdso = true, | ^~~~~~~~~~~~~~~~~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: warning: initialization of ‘u32 (*)(void)’ {aka ‘unsigned int (*)(void)’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 484 | .disable_compat_vdso = true, | ^~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: note: (near initialization for ‘ool_workarounds[5].read_cntp_tval_el0’)
Could be this patch, arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 commit 4b661d6133c5d3a7c9aca0b4ee5a78c7766eff3f upstream.
ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to the virtual counter register are trapped and emulated by the kernel. This makes the vdso pretty pointless, and in some cases livelock prone.
Provide a workaround entry that limits the vdso to 64bit tasks.
Signed-off-by: Marc Zyngier maz@kernel.org Acked-by: Mark Rutland mark.rutland@arm.com Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20200706163802.1836732-4-maz@kernel.org Signed-off-by: Will Deacon will@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
ref: https://gitlab.com/Linaro/lkft/kernel-runs/-/jobs/638094006
Thanks, I've now dropped this patch.
greg k-h
On Tue, Jul 14, 2020 at 8:40 PM Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Tue, Jul 14, 2020 at 10:48:14PM +0530, Naresh Kamboju wrote:
arm64 build failed on 5.4
make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache aarch64-linux-gnu-gcc" O=build Image # ../drivers/clocksource/arm_arch_timer.c:484:4: error: ‘const struct arch_timer_erratum_workaround’ has no member named ‘disable_compat_vdso’ 484 | .disable_compat_vdso = true, | ^~~~~~~~~~~~~~~~~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: warning: initialization of ‘u32 (*)(void)’ {aka ‘unsigned int (*)(void)’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 484 | .disable_compat_vdso = true, | ^~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: note: (near initialization for ‘ool_workarounds[5].read_cntp_tval_el0’)
Could be this patch, arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 commit 4b661d6133c5d3a7c9aca0b4ee5a78c7766eff3f upstream.
ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to the virtual counter register are trapped and emulated by the kernel. This makes the vdso pretty pointless, and in some cases livelock prone.
Provide a workaround entry that limits the vdso to 64bit tasks.
ref: https://gitlab.com/Linaro/lkft/kernel-runs/-/jobs/638094006
Thanks, I've now dropped this patch.
I think we do want to have it back eventually. It appears that the patch upstream depends on the two immediately before it:
4b661d6133c5 arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 c1fbec4ac0d7 arm64: arch_timer: Allow an workaround descriptor to disable compat vdso 97884ca8c292 arm64: Introduce a way to disable the 32bit vdso
AFAICT, the second one was missing, causing the build failure. Do you know if that one needed a manual backport, or could you try applying all three in sequence again?
Arnd
On Wed, Jul 15, 2020 at 08:54:33AM +0200, Arnd Bergmann wrote:
On Tue, Jul 14, 2020 at 8:40 PM Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Tue, Jul 14, 2020 at 10:48:14PM +0530, Naresh Kamboju wrote:
arm64 build failed on 5.4
make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache aarch64-linux-gnu-gcc" O=build Image # ../drivers/clocksource/arm_arch_timer.c:484:4: error: ‘const struct arch_timer_erratum_workaround’ has no member named ‘disable_compat_vdso’ 484 | .disable_compat_vdso = true, | ^~~~~~~~~~~~~~~~~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: warning: initialization of ‘u32 (*)(void)’ {aka ‘unsigned int (*)(void)’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 484 | .disable_compat_vdso = true, | ^~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: note: (near initialization for ‘ool_workarounds[5].read_cntp_tval_el0’)
Could be this patch, arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 commit 4b661d6133c5d3a7c9aca0b4ee5a78c7766eff3f upstream.
ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to the virtual counter register are trapped and emulated by the kernel. This makes the vdso pretty pointless, and in some cases livelock prone.
Provide a workaround entry that limits the vdso to 64bit tasks.
ref: https://gitlab.com/Linaro/lkft/kernel-runs/-/jobs/638094006
Thanks, I've now dropped this patch.
I think we do want to have it back eventually. It appears that the patch upstream depends on the two immediately before it:
4b661d6133c5 arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 c1fbec4ac0d7 arm64: arch_timer: Allow an workaround descriptor to disable compat vdso 97884ca8c292 arm64: Introduce a way to disable the 32bit vdso
AFAICT, the second one was missing, causing the build failure. Do you know if that one needed a manual backport, or could you try applying all three in sequence again?
The "first one", 97884ca8c292 ("arm64: Introduce a way to disable the 32bit vdso"), does not apply to 5.4.y, and neither does c1fbec4ac0d7 ("arm64: arch_timer: Allow an workaround descriptor to disable compat vdso").
So backports for all 3 would be appreciated.
thanks,
greg k-h
On 2020-07-15 10:27, Greg Kroah-Hartman wrote:
On Wed, Jul 15, 2020 at 08:54:33AM +0200, Arnd Bergmann wrote:
On Tue, Jul 14, 2020 at 8:40 PM Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Tue, Jul 14, 2020 at 10:48:14PM +0530, Naresh Kamboju wrote:
arm64 build failed on 5.4
make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache aarch64-linux-gnu-gcc" O=build Image # ../drivers/clocksource/arm_arch_timer.c:484:4: error: ‘const struct arch_timer_erratum_workaround’ has no member named ‘disable_compat_vdso’ 484 | .disable_compat_vdso = true, | ^~~~~~~~~~~~~~~~~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: warning: initialization of ‘u32 (*)(void)’ {aka ‘unsigned int (*)(void)’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 484 | .disable_compat_vdso = true, | ^~~~ ../drivers/clocksource/arm_arch_timer.c:484:26: note: (near initialization for ‘ool_workarounds[5].read_cntp_tval_el0’)
Could be this patch, arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 commit 4b661d6133c5d3a7c9aca0b4ee5a78c7766eff3f upstream.
ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to the virtual counter register are trapped and emulated by the kernel. This makes the vdso pretty pointless, and in some cases livelock prone.
Provide a workaround entry that limits the vdso to 64bit tasks.
ref: https://gitlab.com/Linaro/lkft/kernel-runs/-/jobs/638094006
Thanks, I've now dropped this patch.
I think we do want to have it back eventually. It appears that the patch upstream depends on the two immediately before it:
4b661d6133c5 arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 c1fbec4ac0d7 arm64: arch_timer: Allow an workaround descriptor to disable compat vdso 97884ca8c292 arm64: Introduce a way to disable the 32bit vdso
AFAICT, the second one was missing, causing the build failure. Do you know if that one needed a manual backport, or could you try applying all three in sequence again?
The "first one", 97884ca8c292 ("arm64: Introduce a way to disable the 32bit vdso"), does not apply to 5.4.y, and neither does c1fbec4ac0d7 ("arm64: arch_timer: Allow an workaround descriptor to disable compat vdso").
So backports for all 3 would be appreciated.
These patches cannot just be backported, as 5.4 uses very different data structures and abstractions. I'll try and come up with something semantically equivalent by the end of the day...
Thanks,
M.
linux-stable-mirror@lists.linaro.org