driver inclusion category: feature bugzilla: https://atomgit.com/openeuler/kernel/issues/8904 ---------------------------------------------------------------------- This patch fixes the breakage of KABI due to fpmr, use the reserved domain segment of KABI 1. Signed-off-by: Qinxin Xia <xiaqinxin@huawei.com> --- arch/arm64/include/asm/processor.h | 3 +-- arch/arm64/kernel/fpsimd.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index 6a2eecddd3cd..bcc34705d9f6 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -165,7 +165,6 @@ struct thread_struct { unsigned long tp_value; /* TLS register */ unsigned long tp2_value; struct user_fpsimd_state fpsimd_state; - u64 fpmr; } uw; enum fp_type fp_type; /* registers FPSIMD or SVE? */ @@ -189,7 +188,7 @@ struct thread_struct { u64 sctlr_user; u64 svcr; u64 tpidr2_el0; - KABI_RESERVE(1) + KABI_USE(1, u64 fpmr) KABI_RESERVE(2) KABI_RESERVE(3) KABI_RESERVE(4) diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index bb7d6052a9d7..48e88f08d932 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -386,7 +386,7 @@ static void task_fpsimd_load(void) WARN_ON(!have_cpu_fpsimd_context()); if (system_supports_fpmr()) - write_sysreg_s(current->thread.uw.fpmr, SYS_FPMR); + write_sysreg_s(current->thread.fpmr, SYS_FPMR); if (system_supports_sve() || system_supports_sme()) { switch (current->thread.fp_type) { @@ -1737,7 +1737,7 @@ static void fpsimd_bind_task_to_cpu(void) last->sve_vl = task_get_sve_vl(current); last->sme_vl = task_get_sme_vl(current); last->svcr = ¤t->thread.svcr; - last->fpmr = ¤t->thread.uw.fpmr; + last->fpmr = ¤t->thread.fpmr; last->fp_type = ¤t->thread.fp_type; last->to_save = FP_STATE_CURRENT; current->thread.fpsimd_cpu = smp_processor_id(); -- 2.33.0