@@ -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" \
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@arm.com> --- 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(-)