2009-11-18 02:38:26

by Divy Le ray

[permalink] [raw]
Subject: [PATCH 2.6.32] cxgb3: fix premature page unmap

From: Divy Le Ray <[email protected]>

unmap Rx page only when guaranteed that this page won't be
used anymore to allocate rx page chunks.

Signed-off-by: Divy Le Ray <[email protected]>
---

drivers/net/cxgb3/sge.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)


diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index f866128..6366061 100644
--- 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)--;
- 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,
@@ -2088,7 +2088,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
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,


2009-11-18 13:11:25

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 2.6.32] cxgb3: fix premature page unmap

From: Divy Le Ray <[email protected]>
Date: Tue, 17 Nov 2009 18:38:28 -0800

> From: Divy Le Ray <[email protected]>
>
> unmap Rx page only when guaranteed that this page won't be
> used anymore to allocate rx page chunks.
>
> Signed-off-by: Divy Le Ray <[email protected]>

Applied to net-2.6, thanks.