arm64/fpsimd: simplify sme_setup()

The function checks info->vq_map for emptiness right before calling
find_last_bit().

We can use the find_last_bit() output and save on bitmap_empty() call,
which is O(N).

Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
Yury Norov (NVIDIA) 2025-09-12 20:09:05 -04:00 committed by Will Deacon
parent 8f5ae30d69
commit 19dd484cd1

View File

@ -1265,6 +1265,8 @@ void __init sme_setup(void)
if (!system_supports_sme())
return;
min_bit = find_last_bit(info->vq_map, SVE_VQ_MAX);
/*
* SME doesn't require any particular vector length be
* supported but it does require at least one. We should have
@ -1272,9 +1274,8 @@ void __init sme_setup(void)
* let's double check here. The bitmap is SVE_VQ_MAP sized for
* sharing with SVE.
*/
WARN_ON(bitmap_empty(info->vq_map, SVE_VQ_MAX));
WARN_ON(min_bit >= SVE_VQ_MAX);
min_bit = find_last_bit(info->vq_map, SVE_VQ_MAX);
info->min_vl = sve_vl_from_vq(__bit_to_vq(min_bit));
max_bit = find_first_bit(info->vq_map, SVE_VQ_MAX);