lkml.org 
[lkml]   [2003]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: r8169 with big-endian (patch)
Greetings,

Alexandra N. Kossovsky <sasha@oktet.ru> :
[...]
> Here is the patch to make RTL-8169 PCI Gbit ethernet card to work with
> big-endian host. The patch is against 2.4.22 kernel.

Please Cc: such patches to netdev@oss.sgi.com as well as jgarzik@pobox.com.

[...]
> @@ -664,19 +675,21 @@
> }
>
> tp->TxDescArrays =
> - kmalloc(NUM_TX_DESC * sizeof (struct TxDesc) + 256, GFP_KERNEL);
> + pci_alloc_consistent(tp->pci_dev,
> + NUM_TX_DESC * sizeof (struct TxDesc) + 256,
> + &tp->TxDescDmaAddrs);
> - TxPhyAddr = virt_to_bus(tp->TxDescArrays);
> - diff = 256 - (TxPhyAddr - ((TxPhyAddr >> 8) << 8));
> - TxPhyAddr += diff;
> + diff = 256 - (tp->TxDescDmaAddrs - ((tp->TxDescDmaAddrs >> 8) << 8));
> + tp->TxDescDmaAddr = tp->TxDescDmaAddrs + diff;
> tp->TxDescArray = (struct TxDesc *) (tp->TxDescArrays + diff);

Remove the alignment stuff. pci_alloc_consistent() does it for you,
see Documentation/DMA-mapping.txt:
[...]
The cpu return address and the DMA bus master address are both
guaranteed to be aligned to the smallest PAGE_SIZE order which
is greater than or equal to the requested size. This invariant


@@ -684,12 +697,18 @@
[...]
- tp->RxBufferRings = kmalloc(RX_BUF_SIZE * NUM_RX_DESC, GFP_KERNEL);
+ tp->RxBufferRings = pci_alloc_consistent(tp->pci_dev,
+ RX_BUF_SIZE * NUM_RX_DESC,
+ &tp->RxBufferDmas);

You don't want consistent mapping for the data buffer.
Either you pci_map_single() the whole kmalloced() area and you sync it
when needed or you turn this code into usual, per skb, pci_map_single()
calls and you remove the big Rx data buffer.

--
Ueimor
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:58    [W:2.379 / U:0.316 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site