Skip to contentSkip to conversation

be2net: Fix a bug in Rx buffer posting

PATCH Applied Ajit Khaparde 2 participants 2 messages Apr 8, 2015 – Apr 9, 2015

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 drivers/net/ethernet/emulex/benet/be.h      | 1 +
 drivers/net/ethernet/emulex/benet/be_main.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
drivers/net/ethernet/emulex/benet/be.h +1 -0
index 27b9fe9..204ec43 100644
@@ -97,6 +97,7 @@
 #define BE_NAPI_WEIGHT		64
 #define MAX_RX_POST		BE_NAPI_WEIGHT /* Frags posted at a time */
 #define RX_FRAGS_REFILL_WM	(RX_Q_LEN - MAX_RX_POST)
+#define MAX_NUM_POST_ERX_DB	255u
 
 #define MAX_VFS			30 /* Max VFs supported by BE3 FW */
 #define FW_VER_LEN		32
drivers/net/ethernet/emulex/benet/be_main.c +1 -1
index e6b790f..ad2b509 100644
@@ -2032,7 +2032,7 @@ static void be_post_rx_frags(struct be_rx_obj *rxo, gfp_t gfp, u32 frags_needed)
 		if (rxo->rx_post_starved)
 			rxo->rx_post_starved = false;
 		do {
-			notify = min(256u, posted);
+			notify = min(MAX_NUM_POST_ERX_DB, posted);
 			be_rxq_notify(adapter, rxq->id, notify);
 			posted -= notify;
 		} while (posted);
Signature · 1 line
2.1.0
maintainer Applied
#1 lore raw

From: Ajit Khaparde <[email protected]>
Date: Wed, 8 Apr 2015 16:59:48 -0500

Quoted 5 lines

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.

Applied, thanks.