be2net: Fix a bug in Rx buffer posting
Subsystems (3)
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.
Signed-off-by Ajit Khaparde <[email protected]>
--- 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
@@ -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
@@ -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
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.
Signed-off-by Ajit Khaparde <[email protected]>
Applied, thanks.