Thread (17 messages) 17 messages, 5 authors, 2017-02-27

[PATCH net-next 5/6] drivers: net: xgene-v2: Add transmit and receive

From: David Laight <hidden>
Date: 2017-02-01 11:09:44
Also in: netdev

From Florian Fainelli
Sent: 31 January 2017 20:33
On 01/31/2017 11:03 AM, Iyappan Subramanian wrote:
quoted
This patch adds,
    - Transmit
    - Transmit completion poll
    - Receive poll
    - NAPI handler

and enables the driver.

Signed-off-by: Iyappan Subramanian <redacted>
Signed-off-by: Keyur Chudgar <redacted>
---
quoted
+
+	tx_ring = pdata->tx_ring;
+	tail = tx_ring->tail;
+	len = skb_headlen(skb);
+	raw_desc = &tx_ring->raw_desc[tail];
+
+	/* Tx descriptor not available */
+	if (!GET_BITS(E, le64_to_cpu(raw_desc->m0)) ||
+	    GET_BITS(PKT_SIZE, le64_to_cpu(raw_desc->m0)))
+		return NETDEV_TX_BUSY;
Aren't you supposed to detect 'ring full' and stop the code
giving you packets to transmit.
quoted
+
+	/* Packet buffers should be 64B aligned */
Is that really a requirement of the hardware?
Almost all ethernet frames are 4n+2 aligned.
quoted
+	pkt_buf = dma_alloc_coherent(dev, XGENE_ENET_STD_MTU, &dma_addr,
+				     GFP_ATOMIC);
+	if (unlikely(!pkt_buf))
+		goto out;
Can't you obtain a DMA-API mapping for skb->data and pass it down to the
hardware? This copy here is inefficient.
quoted
+
+	memcpy(pkt_buf, skb->data, len);
You really need to verify that the len <= XGENE_ENET_STD_MTU.

Isn't this code only transmitting the 'head' of the packet?
What about the fragments??
...
	David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help