summaryrefslogtreecommitdiff
path: root/drivers/staging/bcm/Transmit.c
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-11-01 03:55:21 (GMT)
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-11-01 13:54:39 (GMT)
commit937110581650eaa517f045fb7b86b9828ba693ad (patch)
treeb8be23c9b91392287e9179b0b97c071bb3cb97c8 /drivers/staging/bcm/Transmit.c
parent20f48653fcf51f6d1246b5f3f86b40ed779385b2 (diff)
downloadlinux-fsl-qoriq-937110581650eaa517f045fb7b86b9828ba693ad.tar.xz
beceem: support multiple queues
Current kernels have multi-queue support which can be used by this device. This has the advantage that a single type of traffic will not block other types. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Diffstat (limited to 'drivers/staging/bcm/Transmit.c')
-rw-r--r--drivers/staging/bcm/Transmit.c61
1 files changed, 0 insertions, 61 deletions
diff --git a/drivers/staging/bcm/Transmit.c b/drivers/staging/bcm/Transmit.c
index 4b94d82..734bbbd 100644
--- a/drivers/staging/bcm/Transmit.c
+++ b/drivers/staging/bcm/Transmit.c
@@ -35,67 +35,6 @@ SendPacketFromQueue->SetupNextSend->bcm_cmd53
#include "headers.h"
-/*******************************************************************
-* Function - bcm_transmit()
-*
-* Description - This is the main transmit function for our virtual
-* interface(eth0). It handles the ARP packets. It
-* clones this packet and then Queue it to a suitable
-* Queue. Then calls the transmit_packet().
-*
-* Parameter - skb - Pointer to the socket buffer structure
-* dev - Pointer to the virtual net device structure
-*
-* Returns - zero (success) or -ve value (failure)
-*
-*********************************************************************/
-
-netdev_tx_t bcm_transmit(struct sk_buff *skb, struct net_device *dev)
-{
- PMINI_ADAPTER Adapter = GET_BCM_ADAPTER(dev);
- SHORT qindex;
-
- if (Adapter->device_removed || !Adapter->LinkUpStatus)
- goto drop;
-
- if (Adapter->TransferMode != IP_PACKET_ONLY_MODE )
- goto drop;
-
- qindex = GetPacketQueueIndex(Adapter, skb);
-
- if (INVALID_QUEUE_INDEX==qindex)
- goto drop;
-
- if (Adapter->PackInfo[qindex].uiCurrentPacketsOnHost >= SF_MAX_ALLOWED_PACKETS_TO_BACKUP)
- return NETDEV_TX_BUSY;
-
- /* Now Enqueue the packet */
- BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, NEXT_SEND, DBG_LVL_ALL,
- "bcm_transmit Enqueueing the Packet To Queue %d",qindex);
- spin_lock(&Adapter->PackInfo[qindex].SFQueueLock);
- Adapter->PackInfo[qindex].uiCurrentBytesOnHost += skb->len;
- Adapter->PackInfo[qindex].uiCurrentPacketsOnHost++;
-
- *((B_UINT32 *)skb->cb + SKB_CB_LATENCY_OFFSET ) = jiffies;
- ENQUEUEPACKET(Adapter->PackInfo[qindex].FirstTxQueue,
- Adapter->PackInfo[qindex].LastTxQueue, skb);
- atomic_inc(&Adapter->TotalPacketCount);
- spin_unlock(&Adapter->PackInfo[qindex].SFQueueLock);
-
- BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, TX_OSAL_DBG, DBG_LVL_ALL,"ENQ: \n");
-
- /* FIXME - this is racy and incorrect, replace with work queue */
- if (!atomic_read(&Adapter->TxPktAvail)) {
- atomic_set(&Adapter->TxPktAvail, 1);
- wake_up(&Adapter->tx_packet_wait_queue);
- }
- return NETDEV_TX_OK;
-
- drop:
- dev_kfree_skb(skb);
- return NETDEV_TX_OK;
-}
-
/**
@ingroup ctrl_pkt_functions