The SVE KVM support for arm64 includes the additional backend header <asm/sve_context.h> from <asm/kvm.h>. So update this header if it is available. To avoid creating a sudden dependency on a specific minimum kernel version, ignore such optional headers if the source kernel tree doesn't have them. Signed-off-by: Dave Martin <Dave.Martin@xxxxxxx> --- Changes since v3: * [Andre Przywara]: Quote argument to local (it turns out that some shells, including dash, require this). * [Andre Przywara]: Factor out copying of possibly-absent arch headers as optional_arch, for easier reuse later. --- util/update_headers.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/util/update_headers.sh b/util/update_headers.sh index a7e21b8..bf87ef6 100755 --- a/util/update_headers.sh +++ b/util/update_headers.sh @@ -25,11 +25,23 @@ fi cp -- "$LINUX_ROOT/include/uapi/linux/kvm.h" include/linux +unset KVMTOOL_PATH + +copy_optional_arch () { + local src="$LINUX_ROOT/arch/$arch/include/uapi/$1" + + if [ -r "$src" ] + then + cp -- "$src" "$KVMTOOL_PATH/include/asm/" + fi +} + for arch in arm arm64 mips powerpc x86 do case "$arch" in arm) KVMTOOL_PATH=arm/aarch32 ;; - arm64) KVMTOOL_PATH=arm/aarch64 ;; + arm64) KVMTOOL_PATH=arm/aarch64 + copy_optional_arch asm/sve_context.h ;; *) KVMTOOL_PATH=$arch ;; esac cp -- "$LINUX_ROOT/arch/$arch/include/uapi/asm/kvm.h" \ -- 2.1.4 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm