summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-11-13 17:23:31 +0000
committerMark Brown <broonie@kernel.org>2026-11-13 17:23:31 +0000
commit4507970404e9dde2a3cb6b799d36d44f03131879 (patch)
treecfba3e60dafbd235bc1b48e9c2b5ccdc2c680e58 /include/linux
parent7c8148fe46e7a3730da09d20a430fd991cbba2d5 (diff)
parenteab80895d447ec164a1d91a1ab377bd3a9dc9044 (diff)
downloadlinux-next-4507970404e9dde2a3cb6b799d36d44f03131879.tar.gz
linux-next-4507970404e9dde2a3cb6b799d36d44f03131879.zip
Merge branch 'hyperv-next' of https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/arm-rsi-cmds.h22
-rw-r--r--include/linux/arm-smccc-rsi.h7
2 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/arm-rsi-cmds.h b/include/linux/arm-rsi-cmds.h
index 3f7a6a833993..01d292e028a9 100644
--- a/include/linux/arm-rsi-cmds.h
+++ b/include/linux/arm-rsi-cmds.h
@@ -236,4 +236,26 @@ static inline unsigned long rsi_attestation_token_continue(phys_addr_t granule,
return res.a0;
}
+/**
+ * rsi_host_call - Make a Host call.
+ * @host_call_struct: IPA of host call structure
+ *
+ * This call will fail if the IPA of the host call structure:
+ * * is not aligned to 256 bytes,
+ * * is not protected / encrypted,
+ * * is RIPAS_EMPTY
+ *
+ * Returns:
+ * On success, returns RSI_SUCCESS.
+ * Otherwise, returns an error code.
+ */
+static inline unsigned long rsi_host_call(phys_addr_t host_call_struct)
+{
+ struct arm_smccc_res res;
+
+ arm_smccc_smc(SMC_RSI_HOST_CALL, host_call_struct, 0, 0, 0, 0, 0, 0,
+ &res);
+ return res.a0;
+}
+
#endif /* __LINUX_ARM_RSI_CMDS_H_ */
diff --git a/include/linux/arm-smccc-rsi.h b/include/linux/arm-smccc-rsi.h
index cca881ddfdba..791e6a2b0a08 100644
--- a/include/linux/arm-smccc-rsi.h
+++ b/include/linux/arm-smccc-rsi.h
@@ -142,6 +142,13 @@ struct realm_config {
*/
} __aligned(0x1000);
+struct rsi_host_call {
+ u16 immediate;
+ u8 _padding[6];
+ u64 gprs[31];
+} __aligned(256);
+static_assert(sizeof(struct rsi_host_call) == 256);
+
#endif /* __ASSEMBLER__ */
/*