Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f86a93e1 authored by David Woodhouse's avatar David Woodhouse Committed by David S. Miller
Browse files

libertas: kill TxLockFlag



We don't need this. We can use adapter->currenttxskb instead.

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e7deced0
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -285,7 +285,6 @@ struct lbs_adapter {

	/** Tx-related variables (for single packet tx) */
	struct sk_buff *currenttxskb;
	u16 TxLockFlag;

	/** NIC Operation characteristics */
	u16 currentpacketfilter;
+22 −3
Original line number Diff line number Diff line
@@ -290,8 +290,14 @@ static ssize_t lbs_rtap_set(struct device *dev,
			return strlen(buf);
		adapter->monitormode = LBS_MONITOR_OFF;
		lbs_remove_rtap(priv);
		netif_wake_queue(priv->dev);
		netif_wake_queue(priv->mesh_dev);

		if (adapter->currenttxskb) {
			dev_kfree_skb_any(adapter->currenttxskb);
			adapter->currenttxskb = NULL;
		}

		/* Wake queues, command thread, etc. */
		lbs_host_to_card_done(priv);
	}

	lbs_prepare_and_send_command(priv,
@@ -521,7 +527,15 @@ static int lbs_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)

	lbs_deb_enter(LBS_DEB_TX);

	if (priv->dnld_sent || priv->adapter->TxLockFlag) {
	/* We could return NETDEV_TX_BUSY here, but I'd actually 
	   like to get the point where we can BUG() */
	if (priv->dnld_sent) {
		lbs_pr_err("%s while dnld_sent\n", __func__);
		priv->stats.tx_dropped++;
		goto done;
	}
	if (priv->adapter->currenttxskb) {
		lbs_pr_err("%s while TX skb pending\n", __func__);
		priv->stats.tx_dropped++;
		goto done;
	}
@@ -624,6 +638,11 @@ void lbs_host_to_card_done(struct lbs_private *priv)
	if (!adapter->cur_cmd)
		wake_up_interruptible(&priv->waitq);

	/* Don't wake netif queues if we're in monitor mode and
	   a TX packet is already pending. */
	if (priv->adapter->currenttxskb)
		return;

	if (priv->dev && adapter->connect_status == LBS_CONNECTED)
		netif_wake_queue(priv->dev);

+3 −6
Original line number Diff line number Diff line
@@ -152,11 +152,11 @@ static int SendSinglePacket(struct lbs_private *priv, struct sk_buff *skb)
		netif_stop_queue(priv->dev);
		if (priv->mesh_dev)
			netif_stop_queue(priv->mesh_dev);
		/* freeze any packets already in our queues */
		priv->adapter->TxLockFlag = 1;

		/* Keep the skb around for when we get feedback */
		priv->adapter->currenttxskb = skb;
	} else {
		dev_kfree_skb_any(skb);
		priv->adapter->currenttxskb = NULL;
	}

	lbs_deb_leave_args(LBS_DEB_TX, "ret %d", ret);
@@ -227,8 +227,6 @@ int lbs_process_tx(struct lbs_private *priv, struct sk_buff *skb)
		return ret;
	}

	priv->adapter->currenttxskb = skb;

	ret = SendSinglePacket(priv, skb);
done:
	lbs_deb_leave_args(LBS_DEB_TX, "ret %d", ret);
@@ -272,7 +270,6 @@ void lbs_send_tx_feedback(struct lbs_private *priv)
	    (1 + adapter->txretrycount - try_count) : 0;
	lbs_upload_rx_packet(priv, adapter->currenttxskb);
	adapter->currenttxskb = NULL;
	priv->adapter->TxLockFlag = 0;

	if (adapter->connect_status == LBS_CONNECTED)
		netif_wake_queue(priv->dev);