[PATCH] kselftest/arm64: abi: fix SVCR detection
Weizhao Ouyang
o451686892 at gmail.com
Mon Dec 9 04:51:28 PST 2024
On Mon, Dec 9, 2024 at 8:36 PM Mark Brown <broonie at kernel.org> wrote:
>
> On Mon, Dec 09, 2024 at 06:52:37PM +0800, Weizhao Ouyang wrote:
>
> > When using svcr_in to check ZA and Streaming Mode, we should make sure
> > that the value in x2 is correct, otherwise it may trigger an Illegal
> > instruction if FEAT_SVE and !FEAT_SME.
>
> > // Set SVCR if we're doing SME
> > - cbz x1, 1f
> > adrp x2, svcr_in
> > ldr x2, [x2, :lo12:svcr_in]
> > + cbz x1, 1f
> > msr S3_3_C4_C2_2, x2
>
> This is against an older verison of the code so wouldn't apply now.
> It's not also checking the value of SVCR, this is checking the SME flag
> passed in via x1. You can see that the SVCR value is loaded into x2 but
> the check is against x1.
Hi Mark,
This patch aims to fix the second check (SVCR_ZA_SHIFT) instead of
the first one (the x1 SME flag you're referring to):
// Load ZA and ZT0 if enabled - uses x12 as scratch due to SME LDR
tbz x2, #SVCR_ZA_SHIFT, 1f
mov w12, #0
ldr x2, =za_in
2: _ldr_za 12, 2
If SME disabled, x2 will not have an expected value.
BR,
Weizhao
More information about the linux-arm-kernel
mailing list