Commit dc5a3d79 authored by Manish Chopra's avatar Manish Chopra Committed by David S. Miller

bnx2x: Fix PF-VF communication over multi-cos queues.

PF driver doesn't enable tx-switching for all cos queues/clients,
which causes packets drop from PF to VF. Fix this by enabling
tx-switching on all cos queues/clients.
Signed-off-by: default avatarManish Chopra <manishc@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 069e4782
...@@ -2397,10 +2397,15 @@ static int bnx2x_set_pf_tx_switching(struct bnx2x *bp, bool enable) ...@@ -2397,10 +2397,15 @@ static int bnx2x_set_pf_tx_switching(struct bnx2x *bp, bool enable)
/* send the ramrod on all the queues of the PF */ /* send the ramrod on all the queues of the PF */
for_each_eth_queue(bp, i) { for_each_eth_queue(bp, i) {
struct bnx2x_fastpath *fp = &bp->fp[i]; struct bnx2x_fastpath *fp = &bp->fp[i];
int tx_idx;
/* Set the appropriate Queue object */ /* Set the appropriate Queue object */
q_params.q_obj = &bnx2x_sp_obj(bp, fp).q_obj; q_params.q_obj = &bnx2x_sp_obj(bp, fp).q_obj;
for (tx_idx = FIRST_TX_COS_INDEX;
tx_idx < fp->max_cos; tx_idx++) {
q_params.params.update.cid_index = tx_idx;
/* Update the Queue state */ /* Update the Queue state */
rc = bnx2x_queue_state_change(bp, &q_params); rc = bnx2x_queue_state_change(bp, &q_params);
if (rc) { if (rc) {
...@@ -2408,6 +2413,7 @@ static int bnx2x_set_pf_tx_switching(struct bnx2x *bp, bool enable) ...@@ -2408,6 +2413,7 @@ static int bnx2x_set_pf_tx_switching(struct bnx2x *bp, bool enable)
return rc; return rc;
} }
} }
}
DP(BNX2X_MSG_IOV, "%s Tx Switching\n", enable ? "Enabled" : "Disabled"); DP(BNX2X_MSG_IOV, "%s Tx Switching\n", enable ? "Enabled" : "Disabled");
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment