arm64: Add missing includes for mem_encrypt

Doing:
 #include <linux/mem_encrypt.h>

Causes a bunch of compiler failures due to missing implicit includes that
don't happen on x86:

../arch/arm64/include/asm/rsi_cmds.h:117:2: error: call to undeclared library function 'memcpy' with type 'void *(void *, const void *, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  117 |         memcpy(&regs.a1, challenge, size);

../arch/arm64/include/asm/mem_encrypt.h:19:49: warning: declaration of 'struct device' will not be visible outside of this function [-Wvisibility]
   19 | static inline bool force_dma_unencrypted(struct device *dev)

../arch/arm64/include/asm/rsi_cmds.h:44:38: error: call to undeclared function 'virt_to_phys'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   44 |         arm_smccc_smc(SMC_RSI_REALM_CONFIG, virt_to_phys(cfg),

Add the missing includes to the arch/arm headers to avoid this.

Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/0-v1-47aadfbd64cd+25795-arm_memenc_h_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
Jason Gunthorpe 2025-04-17 13:26:16 -03:00 committed by Will Deacon
parent 0af2f6be1b
commit 20125324c0
2 changed files with 4 additions and 0 deletions

View File

@ -4,6 +4,8 @@
#include <asm/rsi.h> #include <asm/rsi.h>
struct device;
struct arm64_mem_crypt_ops { struct arm64_mem_crypt_ops {
int (*encrypt)(unsigned long addr, int numpages); int (*encrypt)(unsigned long addr, int numpages);
int (*decrypt)(unsigned long addr, int numpages); int (*decrypt)(unsigned long addr, int numpages);

View File

@ -7,6 +7,8 @@
#define __ASM_RSI_CMDS_H #define __ASM_RSI_CMDS_H
#include <linux/arm-smccc.h> #include <linux/arm-smccc.h>
#include <linux/string.h>
#include <asm/memory.h>
#include <asm/rsi_smc.h> #include <asm/rsi_smc.h>