4.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Moni Shoua <mo...@mellanox.com>

[ Upstream commit 99ed748e878a99c6c7b87bbec063eefd9e47cb42 ]

The transition is allowed from any state and the atrribute mask must be
IB_QP_STATE.

Fixes: c32a4f296e1d ("IB/mlx5: Add support for DC Initiator QP")
Signed-off-by: Moni Shoua <mo...@mellanox.com>
Reviewed-by: Artemy Kovalyov <artem...@mellanox.com>
Signed-off-by: Leon Romanovsky <leo...@mellanox.com>
Signed-off-by: Jason Gunthorpe <j...@mellanox.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/infiniband/hw/mlx5/qp.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -3264,7 +3264,9 @@ static bool modify_dci_qp_is_ok(enum ib_
        int req = IB_QP_STATE;
        int opt = 0;
 
-       if (cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT) {
+       if (new_state == IB_QPS_RESET) {
+               return is_valid_mask(attr_mask, req, opt);
+       } else if (cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT) {
                req |= IB_QP_PKEY_INDEX | IB_QP_PORT;
                return is_valid_mask(attr_mask, req, opt);
        } else if (cur_state == IB_QPS_INIT && new_state == IB_QPS_INIT) {


Reply via email to