sis190: fix for x86_64 (bug 11509)
authorRiccardo Ghetta <birrachiara@tin.it>
Sun, 7 Jun 2009 19:47:58 +0000 (19:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Jun 2009 07:09:49 +0000 (00:09 -0700)
Corrected dma sync handling on small packets. Should fix
http://bugzilla.kernel.org/show_bug.cgi?id=11509
Note:
While this bug was reported only on x86_64, it could have affected
any architecture.

Signed-off-by: Riccardo Ghetta <birrachiara@tin.it>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sis190.c

index 13b8ca41d571eecc460019800c5124fd74f0ef6c..9ea13c09f009397e3362b968538a9a86914f095d 100644 (file)
@@ -539,8 +539,8 @@ static bool sis190_try_rx_copy(struct sis190_private *tp,
        if (!skb)
                goto out;
 
-       pci_dma_sync_single_for_device(tp->pci_dev, addr, pkt_size,
-                                      PCI_DMA_FROMDEVICE);
+       pci_dma_sync_single_for_cpu(tp->pci_dev, addr, tp->rx_buf_sz,
+                               PCI_DMA_FROMDEVICE);
        skb_reserve(skb, 2);
        skb_copy_to_linear_data(skb, sk_buff[0]->data, pkt_size);
        *sk_buff = skb;