* [PATCH] drivers: atm: eni: Add pci_dma_mapping_error() call
@ 2014-11-08 16:18 Tina Johnson
2014-11-10 20:32 ` David Miller
0 siblings, 1 reply; 3+ messages in thread
From: Tina Johnson @ 2014-11-08 16:18 UTC (permalink / raw)
To: chas; +Cc: linux-atm-general, netdev, linux-kernel, julia.lawall,
Tina Johnson
Added a pci_dma_mapping_error() call to check for mapping errors before
further using the dma handle. Unchecked dma handles were found using
Coccinelle:
@rule1@
expression e1;
identifier x;
@@
*x = pci_map_single(...);
... when != pci_dma_mapping_error(e1,x)
Signed-off-by: Tina Johnson <tinajohnson.1234@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
---
drivers/atm/eni.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
index d65975a..6450a36 100644
--- a/drivers/atm/eni.c
+++ b/drivers/atm/eni.c
@@ -356,6 +356,8 @@ static int do_rx_dma(struct atm_vcc *vcc,struct sk_buff *skb,
if (skb) {
paddr = pci_map_single(eni_dev->pci_dev,skb->data,skb->len,
PCI_DMA_FROMDEVICE);
+ if (pci_dma_mapping_error(eni_dev->pci_dev, paddr))
+ goto trouble;
ENI_PRV_PADDR(skb) = paddr;
if (paddr & 3)
printk(KERN_CRIT DEV_LABEL "(itf %d): VCI %d has "
--
1.7.10.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] drivers: atm: eni: Add pci_dma_mapping_error() call
2014-11-08 16:18 [PATCH] drivers: atm: eni: Add pci_dma_mapping_error() call Tina Johnson
@ 2014-11-10 20:32 ` David Miller
2014-11-11 14:22 ` Tina Johnson
0 siblings, 1 reply; 3+ messages in thread
From: David Miller @ 2014-11-10 20:32 UTC (permalink / raw)
To: tinajohnson.1234
Cc: chas, linux-atm-general, netdev, linux-kernel, julia.lawall
From: Tina Johnson <tinajohnson.1234@gmail.com>
Date: Sat, 8 Nov 2014 21:48:02 +0530
> Added a pci_dma_mapping_error() call to check for mapping errors before
> further using the dma handle. Unchecked dma handles were found using
> Coccinelle:
>
> @rule1@
> expression e1;
> identifier x;
> @@
>
> *x = pci_map_single(...);
> ... when != pci_dma_mapping_error(e1,x)
>
> Signed-off-by: Tina Johnson <tinajohnson.1234@gmail.com>
> Acked-by: Julia Lawall <julia.lawall@lip6.fr>
I really don't like quick fixes like this, exactly because of the
kind of new bug this change is introducing.
The 'trouble' label assumes that it is recovering and unwinding state
when an error occurs after the DMA buffer is successfully mapped.
It unconditionally does pci_unmap_single() if 'paddr' is non-zero
which it might be in the error case depending upon how DMA errors
are represented on a given platform.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] drivers: atm: eni: Add pci_dma_mapping_error() call
2014-11-10 20:32 ` David Miller
@ 2014-11-11 14:22 ` Tina Johnson
0 siblings, 0 replies; 3+ messages in thread
From: Tina Johnson @ 2014-11-11 14:22 UTC (permalink / raw)
To: David Miller
Cc: tinajohnson.1234, chas, linux-atm-general, netdev, linux-kernel,
julia.lawall
On Mon, 10 Nov 2014, David Miller wrote:
> The 'trouble' label assumes that it is recovering and unwinding state
> when an error occurs after the DMA buffer is successfully mapped.
>
> It unconditionally does pci_unmap_single() if 'paddr' is non-zero
> which it might be in the error case depending upon how DMA errors
> are represented on a given platform.
Sorry for the trouble and thankyou for your very helpful comment. I
will send the revised patch.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-11-11 14:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-08 16:18 [PATCH] drivers: atm: eni: Add pci_dma_mapping_error() call Tina Johnson
2014-11-10 20:32 ` David Miller
2014-11-11 14:22 ` Tina Johnson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).