/** * @brief This function handles packet transmission * * @param skb A pointer to sk_buff structure * @param dev A pointer to net_device structure * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE */ static int wlan_hard_start_xmit(struct sk_buff *skb, struct eth_drv_sc *sc) { int ret; wlan_private *priv = sc->driver_private; ENTER(); if (wlan_tx_packet(priv, skb)) { /* Transmit failed */ ret = WLAN_STATUS_FAILURE; goto done; } else { /* Transmit succeeded */ #if 0 if (!priv->adapter->wmm.enabled) { if (priv->adapter->TxSkbNum >= MAX_NUM_IN_TX_Q) { UpdateTransStart(dev); os_stop_queue(priv); } } #endif } ret = WLAN_STATUS_SUCCESS; done: LEAVE(); return ret; }
/** * @brief This function handles packet transmission * * @param skb A pointer to sk_buff structure * @param dev A pointer to net_device structure * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE */ static int wlan_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) { int ret; wlan_private *priv = (wlan_private *) netdev_priv(dev); ret = WLAN_STATUS_SUCCESS; ENTER(); PRINTM(DATA, "Data <= kernel @ %lu\n", os_time_get()); if (wlan_tx_packet(priv, skb)) { /* Transmit failed */ ret = WLAN_STATUS_FAILURE; } LEAVE(); return ret; }