[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] target/arm: Correct calculation of tlb range invalidate leng
From: |
Alex Bennée |
Subject: |
Re: [PATCH] target/arm: Correct calculation of tlb range invalidate length |
Date: |
Tue, 30 Nov 2021 20:10:28 +0000 |
User-agent: |
mu4e 1.7.5; emacs 28.0.60 |
Peter Maydell <peter.maydell@linaro.org> writes:
> The calculation of the length of TLB range invalidate operations
> in tlbi_aa64_range_get_length() is incorrect in two ways:
> * the NUM field is 5 bits, but we read only 4 bits
> * we miscalculate the page_shift value, because of an
> off-by-one error:
> TG 0b00 is invalid
> TG 0b01 is 4K granule size == 4096 == 2^12
> TG 0b10 is 16K granule size == 16384 == 2^14
> TG 0b11 is 64K granule size == 65536 == 2^16
> so page_shift should be (TG - 1) * 2 + 12
>
> Thanks to the bug report submitter Cha HyunSoo for identifying
> both these errors.
>
> Fixes: 84940ed82552d3c
Fixes: 84940ed825 (target/arm: Add support for FEAT_TLBIRANGE)
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée