diff --git a/compel/arch/aarch64/src/lib/include/uapi/asm/infect-types.h b/compel/arch/aarch64/src/lib/include/uapi/asm/infect-types.h index 3a34ab4f6..606c92ffe 100644 --- a/compel/arch/aarch64/src/lib/include/uapi/asm/infect-types.h +++ b/compel/arch/aarch64/src/lib/include/uapi/asm/infect-types.h @@ -20,8 +20,11 @@ typedef struct user_pt_regs user_regs_struct_t; /* * GCS (Guarded Control Stack) + * + * This mirrors the kernel definition but renamed to cr_user_gcs + * to avoid conflict with kernel headers (/usr/include/asm/ptrace.h). */ -struct user_gcs { +struct cr_user_gcs { __u64 features_enabled; __u64 features_locked; __u64 gcspr_el0; @@ -29,7 +32,7 @@ struct user_gcs { struct user_fpregs_struct { struct user_fpsimd_state fpstate; - struct user_gcs gcs; + struct cr_user_gcs gcs; }; typedef struct user_fpregs_struct user_fpregs_struct_t; diff --git a/compel/arch/aarch64/src/lib/infect.c b/compel/arch/aarch64/src/lib/infect.c index 7450ac026..42f593c79 100644 --- a/compel/arch/aarch64/src/lib/infect.c +++ b/compel/arch/aarch64/src/lib/infect.c @@ -41,7 +41,7 @@ bool __compel_host_supports_gcs(void) return (hwcap & HWCAP_GCS) != 0; } -static bool __compel_gcs_enabled(struct user_gcs *gcs) +static bool __compel_gcs_enabled(struct cr_user_gcs *gcs) { if (!compel_host_supports_gcs()) return false; @@ -136,7 +136,7 @@ int compel_set_task_ext_regs(pid_t pid, user_fpregs_struct_t *ext_regs) { struct iovec iov; - struct user_gcs gcs; + struct cr_user_gcs gcs; struct iovec gcs_iov = { .iov_base = &gcs, .iov_len = sizeof(gcs) }; pr_info("Restoring GP/FPU registers for %d\n", pid); @@ -363,7 +363,7 @@ int ptrace_flush_breakpoints(pid_t pid) return 0; } -int inject_gcs_cap_token(struct parasite_ctl *ctl, pid_t pid, struct user_gcs *gcs) +int inject_gcs_cap_token(struct parasite_ctl *ctl, pid_t pid, struct cr_user_gcs *gcs) { struct iovec gcs_iov = { .iov_base = gcs, .iov_len = sizeof(*gcs) }; @@ -403,7 +403,7 @@ int inject_gcs_cap_token(struct parasite_ctl *ctl, pid_t pid, struct user_gcs *g int parasite_setup_shstk(struct parasite_ctl *ctl, user_fpregs_struct_t *ext_regs) { - struct user_gcs gcs; + struct cr_user_gcs gcs; struct iovec gcs_iov = { .iov_base = &gcs, .iov_len = sizeof(gcs) }; pid_t pid = ctl->rpid; diff --git a/criu/arch/aarch64/crtools.c b/criu/arch/aarch64/crtools.c index 835a83400..2e89f9ce3 100644 --- a/criu/arch/aarch64/crtools.c +++ b/criu/arch/aarch64/crtools.c @@ -148,7 +148,7 @@ static int save_pac_keys(int pid, CoreEntry *core) int save_task_regs(pid_t pid, void *x, user_regs_struct_t *regs, user_fpregs_struct_t *fpsimd) { int i; - struct user_gcs gcs_live; + struct cr_user_gcs gcs_live; struct iovec gcs_iov = { .iov_base = &gcs_live, .iov_len = sizeof(gcs_live),