Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Jason Gunthorpe and committed by
Will Deacon
20125324 0af2f6be

+4
+2
arch/arm64/include/asm/mem_encrypt.h
··· 4 4 5 5 #include <asm/rsi.h> 6 6 7 + struct device; 8 + 7 9 struct arm64_mem_crypt_ops { 8 10 int (*encrypt)(unsigned long addr, int numpages); 9 11 int (*decrypt)(unsigned long addr, int numpages);
+2
arch/arm64/include/asm/rsi_cmds.h
··· 7 7 #define __ASM_RSI_CMDS_H 8 8 9 9 #include <linux/arm-smccc.h> 10 + #include <linux/string.h> 11 + #include <asm/memory.h> 10 12 11 13 #include <asm/rsi_smc.h> 12 14