aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjit Khaparde <ajit.khaparde@emulex.com>2015-04-08 17:59:48 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-08 22:44:27 -0400
commit69304cc986bdcd7a09df179aeda3736f7e1544a5 (patch)
treeb1e177503812f971c0ea723ac40a3787e5e73199
parent5eeb2922152042b78eccfb6cf70458019296654f (diff)
be2net: Fix a bug in Rx buffer posting
The numPosted field in the ERX Doorbell register is 8-bits wide. So the max buffers that we can post at a time is 255 and not 256 which we are doing currently. Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/emulex/benet/be.h1
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index 27b9fe99a9bd..204ec43438c4 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -97,6 +97,7 @@
97#define BE_NAPI_WEIGHT 64 97#define BE_NAPI_WEIGHT 64
98#define MAX_RX_POST BE_NAPI_WEIGHT /* Frags posted at a time */ 98#define MAX_RX_POST BE_NAPI_WEIGHT /* Frags posted at a time */
99#define RX_FRAGS_REFILL_WM (RX_Q_LEN - MAX_RX_POST) 99#define RX_FRAGS_REFILL_WM (RX_Q_LEN - MAX_RX_POST)
100#define MAX_NUM_POST_ERX_DB 255u
100 101
101#define MAX_VFS 30 /* Max VFs supported by BE3 FW */ 102#define MAX_VFS 30 /* Max VFs supported by BE3 FW */
102#define FW_VER_LEN 32 103#define FW_VER_LEN 32
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index e6b790f0d9dc..ad2b5094a498 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2032,7 +2032,7 @@ static void be_post_rx_frags(struct be_rx_obj *rxo, gfp_t gfp, u32 frags_needed)
2032 if (rxo->rx_post_starved) 2032 if (rxo->rx_post_starved)
2033 rxo->rx_post_starved = false; 2033 rxo->rx_post_starved = false;
2034 do { 2034 do {
2035 notify = min(256u, posted); 2035 notify = min(MAX_NUM_POST_ERX_DB, posted);
2036 be_rxq_notify(adapter, rxq->id, notify); 2036 be_rxq_notify(adapter, rxq->id, notify);
2037 posted -= notify; 2037 posted -= notify;
2038 } while (posted); 2038 } while (posted);