| From: Jack Morgenstein <jackm@dev.mellanox.co.il> |
| Date: Tue, 24 Jul 2018 14:27:55 +0300 |
| Subject: net/mlx4_core: Save the qpn from the input modifier in RST2INIT |
| wrapper |
| |
| commit 958c696f5a7274d9447a458ad7aa70719b29a50a upstream. |
| |
| Function mlx4_RST2INIT_QP_wrapper saved the qp number passed in the qp |
| context, rather than the one passed in the input modifier. |
| |
| However, the qp number in the qp context is not defined as a |
| required parameter by the FW. Therefore, drivers may choose to not |
| specify the qp number in the qp context for the reset-to-init transition. |
| |
| Thus, we must save the qp number passed in the command input modifier -- |
| which is always present. (This saved qp number is used as the input |
| modifier for command 2RST_QP when a slave's qp's are destroyed). |
| |
| Fixes: c82e9aa0a8bc ("mlx4_core: resource tracking for HCA resources used by guests") |
| Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> |
| Signed-off-by: Tariq Toukan <tariqt@mellanox.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| [bwh: Backported to 3.16: adjust context] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c |
| +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c |
| @@ -2673,7 +2673,7 @@ int mlx4_RST2INIT_QP_wrapper(struct mlx4 |
| u32 srqn = qp_get_srqn(qpc) & 0xffffff; |
| int use_srq = (qp_get_srqn(qpc) >> 24) & 1; |
| struct res_srq *srq; |
| - int local_qpn = be32_to_cpu(qpc->local_qpn) & 0xffffff; |
| + int local_qpn = vhcr->in_modifier & 0xffffff; |
| |
| err = qp_res_start_move_to(dev, slave, qpn, RES_QP_HW, &qp, 0); |
| if (err) |