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.mar...@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(-)

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@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to