Re: [PATCH] iommu/arm-smmu-v3: Fix L1 stream table index calculation for AmpereOne

From: Yang Shi
Date: Tue Oct 01 2024 - 16:31:53 EST




On 10/1/24 12:46 PM, Jason Gunthorpe wrote:
On Tue, Oct 01, 2024 at 12:38:56PM -0700, Yang Shi wrote:

On 10/1/24 12:18 PM, Jason Gunthorpe wrote:
On Tue, Oct 01, 2024 at 12:09:03PM -0700, Yang Shi wrote:
Also, there are other places doing "1 << smmu->sid_bits", e.g.
arm_smmu_init_strtab_linear().
The disassembly shows it uses "sbfiz x21, x20, 6, 32" instead of lsl. 1UL
should be used if we want to take extra caution and don't prefer rely on
compiler.
Still, we should be fixing them all if sid_bits == 32, all those
shifts should be throwing a UBSAN error. It would be crazy to have a
OK, will cover this is v2.
Maybe just make a little inline function to do this math and remove
the repated open coding? Then the types can be right, etc.

Fine to me.


Jason