]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
be2net: post full RXQ on interface enable
authorSuresh Reddy <Suresh.Reddy@avagotech.com>
Wed, 6 May 2015 09:30:36 +0000 (05:30 -0400)
committerManjunath Govindashetty <manjunath.govindashetty@oracle.com>
Fri, 16 Oct 2015 00:07:52 +0000 (17:07 -0700)
When an RXQ is created in be_open(), the driver currently posts only
64 buffers. This sometimes results in packet drops when there is a traffic
burst as soon as the interface is enabled.
This patch fixes this problem by posting the full RXQ on interface enable.

Signed-off-by: Suresh Reddy <Suresh.Reddy@avagotech.com>
Signed-off-by: Sathya Perla <sathya.perla@avagotech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_main.c

index 2ba71aa419629262df1305a691c2de92b8497492..8d05ccec684974da8c0718c7ceb5bc1cac47d16a 100644 (file)
@@ -3326,9 +3326,12 @@ static int be_rx_qs_create(struct be_adapter *adapter)
 
        memcpy(rss->rss_hkey, rss_key, RSS_HASH_KEY_LEN);
 
-       /* First time posting */
+       /* Post 1 less than RXQ-len to avoid head being equal to tail,
+        * which is a queue empty condition
+        */
        for_all_rx_queues(adapter, rxo, i)
-               be_post_rx_frags(rxo, GFP_KERNEL, MAX_RX_POST);
+               be_post_rx_frags(rxo, GFP_KERNEL, RX_Q_LEN - 1);
+
        return 0;
 }