[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] VT-d/ATS: correct and clean up dev_invalidate_iotlb()
>>> On 24.06.14 at 18:09, <andrew.cooper3@xxxxxxxxxx> wrote: > On 24/06/14 15:25, Jan Beulich wrote: >> @@ -133,32 +135,37 @@ int dev_invalidate_iotlb(struct iommu *i >> /* invalidate all translations: sbit=1,bit_63=0,bit[62:12]=1 */ >> sbit = 1; >> addr = (~0 << PAGE_SHIFT_4K) & 0x7FFFFFFFFFFFFFFF; >> - ret |= qinval_device_iotlb(iommu, pdev->ats_queue_depth, >> - sid, sbit, addr); >> + rc = qinval_device_iotlb(iommu, pdev->ats_queue_depth, >> + sid, sbit, addr); >> break; >> case DMA_TLB_PSI_FLUSH: >> if ( !device_in_domain(iommu, pdev, did) ) >> break; >> >> - addr &= ~0 << (PAGE_SHIFT + size_order); >> - >> /* if size <= 4K, set sbit = 0, else set sbit = 1 */ >> sbit = size_order ? 1 : 0; >> >> /* clear lower bits */ >> - addr &= (~0 << (PAGE_SHIFT + size_order)); >> + addr &= ~0 << PAGE_SHIFT_4K; > > Doesn't this need to be ~0ULL as addr is u64? No (or else further up in the code shown as context the same would need to be done): Conversion here goes via sign-extension (effectively int -> int64_t -> uint64_t). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |