On June 12, 2016 5:27 PM, Xu, Quan wrote:
> On June 12, 2016 3:33 PM, Tian, Kevin wrote:
> > > From: Xu, Quan
> > > Sent: Wednesday, June 08, 2016 4:59 PM @@ -545,18 +549,42 @@
> static
> > > int __must_check iommu_flush_all(void) {
> > > struct acpi_drhd_unit *drhd;
> > > struct iommu
On June 12, 2016 3:33 PM, Tian, Kevin wrote:
> > From: Xu, Quan
> > Sent: Wednesday, June 08, 2016 4:59 PM @@ -545,18 +549,42 @@ static
> > int __must_check iommu_flush_all(void) {
> > struct acpi_drhd_unit *drhd;
> > struct iommu *iommu;
> > -int flush_dev_iotlb;
> > +int rc =
> From: Xu, Quan
> Sent: Wednesday, June 08, 2016 4:59 PM
> @@ -545,18 +549,42 @@ static int __must_check iommu_flush_all(void)
> {
> struct acpi_drhd_unit *drhd;
> struct iommu *iommu;
> -int flush_dev_iotlb;
> +int rc = 0;
>
> flush_all_cache();
> for_each_drhd_unit
From: Quan Xu
The propagation value from IOMMU flush interfaces may be positive, which
indicates callers need to flush cache, not one of faliures.
when the propagation value is positive, this patch fixes this flush issue
as follows:
- call iommu_flush_write_buffer() to flush cache.
- return