[PATCH] arm64/cpufeature: Validate feature bits spacing in arm64_ftr_regs[]

Suzuki K Poulose suzuki.poulose at arm.com
Tue Jun 30 06:16:18 EDT 2020


On 06/30/2020 02:49 AM, Anshuman Khandual wrote:
> 
> 
> On 06/29/2020 04:12 PM, Suzuki K Poulose wrote:
>> On 06/16/2020 03:25 AM, Anshuman Khandual wrote:
>>> arm64_feature_bits for a register in arm64_ftr_regs[] are in a descending
>>> order as per their shift values. Validate that these features bits are
>>> defined correctly and do not overlap with each other. This check protects
>>> against any inadvertent erroneous changes to the register definitions.
>>>
>>> Cc: Catalin Marinas <catalin.marinas at arm.com>
>>> Cc: Will Deacon <will at kernel.org>
>>> Cc: Suzuki K Poulose <suzuki.poulose at arm.com>
>>> Cc: Mark Brown <broonie at kernel.org>
>>> Cc: Mark Rutland <mark.rutland at arm.com>
>>> Cc: linux-arm-kernel at lists.infradead.org
>>> Cc: linux-kernel at vger.kernel.org
>>> Signed-off-by: Anshuman Khandual <anshuman.khandual at arm.com>
>>> ---
>>> Applies on 5.8-rc1.
>>>
>>>    arch/arm64/kernel/cpufeature.c | 45 +++++++++++++++++++++++++++++++---
>>>    1 file changed, 42 insertions(+), 3 deletions(-)

>>> +        }
>>>    -    /* Check that the array is sorted so that we can do the binary search */
>>> -    for (i = 1; i < ARRAY_SIZE(arm64_ftr_regs); i++)
>>> +        /*
>>> +         * Skip the first register. There is nothing to
>>> +         * compare against for now.
>>> +         */
>>> +        if (i == 0)
>>> +            continue;
>>
>> You are starting at 1 already, so you may skip this check.
> 
> Actually, now we are starting with 0 instead for both i and j.
> Hence this check would be required.

Sorry, ignore that.

Suzuki






More information about the linux-arm-kernel mailing list