Re: [PATCH v6 04/21] arm64: smccc: Include alternative-macros.h

From: Elliot Berman
Date: Wed Oct 26 2022 - 16:24:09 EST



On 10/26/2022 12:46 PM, Dmitry Baryshkov wrote:
On 26/10/2022 21:58, Elliot Berman wrote:
Fix build error when CONFIG_ARM64_SVE is selected and
asm/alternative-macros.h wasn't implicitly included by another header.

Please include the build error into the commit message to help anybody looking for the solution for the same issue.


Now that the gunyah_hypercall implementation has been moved to its own module, this change isn't needed because asm/alternative-macros.h got implicitly included now. I can drop this, although not sure if we think it's still correct to have it?

After I got rid of the other header files, for reference:

In file included from arch/arm64/gunyah/gunyah_hypercall.c:6:
arch/arm64/gunyah/gunyah_hypercall.c: In function ‘gh_hypercall_msgq_send’:
./include/linux/arm-smccc.h:387:25: error: expected string literal before ‘ALTERNATIVE’
387 | #define SMCCC_SVE_CHECK ALTERNATIVE("nop \n", "bl __arm_smccc_sve_check \n", \


Signed-off-by: Elliot Berman <quic_eberman@xxxxxxxxxxx>
---
  include/linux/arm-smccc.h | 1 +
  1 file changed, 1 insertion(+)

diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
index 220c8c60e021..6a627cdbbdec 100644
--- a/include/linux/arm-smccc.h
+++ b/include/linux/arm-smccc.h
@@ -383,6 +383,7 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1,
  /* nVHE hypervisor doesn't have a current thread so needs separate checks */
  #if defined(CONFIG_ARM64_SVE) && !defined(__KVM_NVHE_HYPERVISOR__)
+#include <asm/alternative-macros.h>
  #define SMCCC_SVE_CHECK ALTERNATIVE("nop \n",  "bl __arm_smccc_sve_check \n", \
                      ARM64_SVE)