[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 3/4] intel_iommu: fix type of the mask field in VTDIOTLBPa
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v4 3/4] intel_iommu: fix type of the mask field in VTDIOTLBPageInvInfo |
Date: |
Sat, 20 Jul 2024 15:08:47 -0400 |
On Sat, Jul 20, 2024 at 02:45:29PM -0400, Michael S. Tsirkin wrote:
> On Mon, Jul 08, 2024 at 03:12:27PM +0800, Yi Liu wrote:
> > On 2024/7/5 19:01, CLEMENT MATHIEU--DRIF wrote:
> > > From: Clément Mathieu--Drif <clement.mathieu--drif@eviden.com>
> > >
> > > The mask we are trying to store into VTDIOTLBPageInvInfo.mask might not
> > > fit in an uint8_t. Use uint64_t to avoid overflows
> >
> > Per the below code, it can overflow as am can be larger than 8 according
> > to the CH 6.5.2.3 IOTLB Invalidate.
>
> I don't understand what you are saying. What can overflow?
> Are you suggesting text for commit log here?
>
> > And you may want a fix tag as well.
>
> why not.
ignore pls this is on old version.
> > info.mask = ~((1 << am) - 1);
> >
> > CH 6.5.2.3 IOTLB Invalidate
> >
> > Address Mask (AM): For page-selective-within-domain invalidations, the
> > Address Mask specifies
> > the number of low order bits of the ADDR field that must be masked for the
> > invalidation operation.
> > This field enables software to request invalidation of contiguous mappings
> > for size-aligned
> > regions. Refer to Table 19 for encodings of this field. When invalidating a
> > large-page translation,
> > software must use the appropriate Address Mask value (0 for 4KByte page, 9
> > for 2-MByte page,
> > and 18 for 1-GByte page). Hardware implementations report the maximum
> > supported address
> > mask value through the Capability register
> >
> > > Signed-off-by: Clément Mathieu--Drif <clement.mathieu--drif@eviden.com>
> > > ---
> > > hw/i386/intel_iommu_internal.h | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/hw/i386/intel_iommu_internal.h
> > > b/hw/i386/intel_iommu_internal.h
> > > index faea23e8d6..5f32c36943 100644
> > > --- a/hw/i386/intel_iommu_internal.h
> > > +++ b/hw/i386/intel_iommu_internal.h
> > > @@ -436,7 +436,7 @@ struct VTDIOTLBPageInvInfo {
> > > uint16_t domain_id;
> > > uint32_t pasid;
> > > uint64_t addr;
> > > - uint8_t mask;
> > > + uint64_t mask;
> > > };
> > > typedef struct VTDIOTLBPageInvInfo VTDIOTLBPageInvInfo;
> >
> > --
> > Regards,
> > Yi Liu
[PATCH v4 2/4] intel_iommu: move VTD_FRCD_PV and VTD_FRCD_PP declarations, CLEMENT MATHIEU--DRIF, 2024/07/05
[PATCH v4 4/4] intel_iommu: make types match, CLEMENT MATHIEU--DRIF, 2024/07/05
Re: [PATCH v4 0/4] VT-d minor fixes, Michael S. Tsirkin, 2024/07/20