|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 01/21] AMD/IOMMU: correct potentially-UB shifts
On 27.04.2022 15:08, Andrew Cooper wrote:
> On 25/04/2022 09:30, Jan Beulich wrote:
>> Recent changes (likely 5fafa6cf529a ["AMD/IOMMU: have callers specify
>> the target level for page table walks"]) have made Coverity notice a
>> shift count in iommu_pde_from_dfn() which might in theory grow too
>> large. While this isn't a problem in practice, address the concern
>> nevertheless to not leave dangling breakage in case very large
>> superpages would be enabled at some point.
>>
>> Coverity ID: 1504264
>>
>> While there also address a similar issue in set_iommu_ptes_present().
>> It's not clear to me why Coverity hasn't spotted that one.
>>
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>> ---
>> v4: New.
>>
>> --- a/xen/drivers/passthrough/amd/iommu_map.c
>> +++ b/xen/drivers/passthrough/amd/iommu_map.c
>> @@ -89,11 +89,11 @@ static unsigned int set_iommu_ptes_prese
>> bool iw, bool ir)
>> {
>> union amd_iommu_pte *table, *pde;
>> - unsigned int page_sz, flush_flags = 0;
>> + unsigned long page_sz = 1UL << (PTE_PER_TABLE_SHIFT * (pde_level - 1));
>
> There's an off-by-12 error somewhere here.
>
> Judging by it's use, it should be named mapping_frames (or similar) instead.
Hmm, I think the author meant "size of the (potentially large) page
in units of 4k (base) pages". That's still some form of "page size".
> With that fixed, Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
If anything there could be another patch renaming the variable; that's
certainly not the goal here. But as said, I don't think the variable
name is strictly wrong. And with that it also doesn't feel entirely
right that I would be on the hook of renaming it. I also think that
"mapping_frames" isn't much better; it would need to be something
like "nr_frames_per_pte", which is starting to get longish.
So for the moment thanks for the R-b, but I will only apply it once
we've sorted the condition you provided it under.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |