[SPARC64]: Refine PCI strbuf ctx-based flush.
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>
This commit is contained in:
parent
7c963ad1d1
commit
88314ee73f
|
@ -422,14 +422,12 @@ static void pci_strbuf_flush(struct pci_strbuf *strbuf, struct pci_iommu *iommu,
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue