Patchwork [RFC] sky2: add bql support

login
register
mail settings
Submitter stephen hemminger
Date Nov. 29, 2011, 4:19 a.m.
Message ID <20111128201907.6d31d4c3@nehalam.linuxnetplumber.net>
Download mbox | patch
Permalink /patch/128212/
State RFC
Delegated to: David Miller
Headers show

Comments

stephen hemminger - Nov. 29, 2011, 4:19 a.m.
Just for testing, here is how to add BQL support to sky2

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Nov. 29, 2011, 5:47 p.m.
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 28 Nov 2011 20:19:07 -0800

> Just for testing, here is how to add BQL support to sky2
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Let me know when you have a final version of this, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

--- a/drivers/net/ethernet/marvell/sky2.c	2011-11-23 12:00:14.953964611 -0800
+++ b/drivers/net/ethernet/marvell/sky2.c	2011-11-23 12:17:40.269120465 -0800
@@ -1110,6 +1110,7 @@  static void tx_init(struct sky2_port *sk
 	sky2->tx_prod = sky2->tx_cons = 0;
 	sky2->tx_tcpsum = 0;
 	sky2->tx_last_mss = 0;
+	netdev_reset_queue(sky2->netdev);
 
 	le = get_tx_le(sky2, &sky2->tx_prod);
 	le->addr = 0;
@@ -1971,6 +1972,7 @@  static netdev_tx_t sky2_xmit_frame(struc
 	if (tx_avail(sky2) <= MAX_SKB_TX_LE)
 		netif_stop_queue(dev);
 
+	netdev_sent_queue(dev, 1, skb->len);
 	sky2_put_idx(hw, txqaddr[sky2->port], sky2->tx_prod);
 
 	return NETDEV_TX_OK;
@@ -2022,6 +2024,8 @@  static void sky2_tx_complete(struct sky2
 			sky2->tx_stats.bytes += skb->len;
 			u64_stats_update_end(&sky2->tx_stats.syncp);
 
+			netdev_completed_queue(dev, 1, skb->len);
+
 			re->skb = NULL;
 			dev_kfree_skb_any(skb);