projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cxgb3: fix premature page unmap
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
net
/
cxgb3
/
sge.c
diff --git
a/drivers/net/cxgb3/sge.c
b/drivers/net/cxgb3/sge.c
index f86612857a73b2bb470aecb92dfe94b5c50a1cd7..6366061712f447c198b31e5c5307ede58de51c06 100644
(file)
--- a/
drivers/net/cxgb3/sge.c
+++ b/
drivers/net/cxgb3/sge.c
@@
-879,7
+879,7
@@
recycle:
pci_dma_sync_single_for_cpu(adap->pdev, dma_addr, len,
PCI_DMA_FROMDEVICE);
(*sd->pg_chunk.p_cnt)--;
pci_dma_sync_single_for_cpu(adap->pdev, dma_addr, len,
PCI_DMA_FROMDEVICE);
(*sd->pg_chunk.p_cnt)--;
- if (!*sd->pg_chunk.p_cnt)
+ if (!*sd->pg_chunk.p_cnt
&& sd->pg_chunk.page != fl->pg_chunk.page
)
pci_unmap_page(adap->pdev,
sd->pg_chunk.mapping,
fl->alloc_size,
pci_unmap_page(adap->pdev,
sd->pg_chunk.mapping,
fl->alloc_size,
@@
-2088,7
+2088,7
@@
static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
PCI_DMA_FROMDEVICE);
(*sd->pg_chunk.p_cnt)--;
PCI_DMA_FROMDEVICE);
(*sd->pg_chunk.p_cnt)--;
- if (!*sd->pg_chunk.p_cnt)
+ if (!*sd->pg_chunk.p_cnt
&& sd->pg_chunk.page != fl->pg_chunk.page
)
pci_unmap_page(adap->pdev,
sd->pg_chunk.mapping,
fl->alloc_size,
pci_unmap_page(adap->pdev,
sd->pg_chunk.mapping,
fl->alloc_size,