The initial peek read PIO of the match register is just a waste.
Just do the flush writes first, as that is more efficient.
Signed-off-by: David S. Miller <davem@davemloft.net>
                flushreg = strbuf->strbuf_ctxflush;
                matchreg = PCI_STC_CTXMATCH_ADDR(strbuf, ctx);
 
-               if (pci_iommu_read(matchreg) == 0)
-                       goto do_flush_sync;
-
                pci_iommu_write(flushreg, ctx);
-               if ((val = pci_iommu_read(matchreg)) == 0)
+               val = pci_iommu_read(matchreg);
+               val &= 0xffff;
+               if (!val)
                        goto do_flush_sync;
 
-               val &= 0xffff;
                while (val) {
                        if (val & 0x1)
                                pci_iommu_write(flushreg, ctx);