Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp4479523ybx; Mon, 4 Nov 2019 14:07:07 -0800 (PST) X-Google-Smtp-Source: APXvYqzREvERgecomcklMfQcEeA7zCrZUzr8u06z2vlnjKKeoxWF+vREKPj1FZy6PGr8zKKoxD8Q X-Received: by 2002:a50:cb8a:: with SMTP id k10mr28037536edi.21.1572905226876; Mon, 04 Nov 2019 14:07:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572905226; cv=none; d=google.com; s=arc-20160816; b=Qfm35o0y43ww9dbeyRbddmuFVQGakMNfgvGBBRUnY2k0pz4UlunJ2MKv+ff4FeVVM/ VXkkHdOsJjoSvcIs0gt6S9K0+ibblIdM+TBHXxUh6nhD9TF7THVKEiMRExExo34voCbC QEP347bdRqEnRLFNqvHXfpxne8SulA/uMilOdMulWe2HE6pQkulPlFktSDOFUG+PSSeF II7SQo8249eXj1+Xvmc1PogaM37c32j6Zaqpl2kH1arKwwMt65UPw8ndmIdnMuI09kze e9UHFG6kxQJ09adEtemUrazrHrOqC3FOvUxjr0czgyRiKJpueh0hCOvq5gnI8G3W3CjO EQBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=kvcmyC9WK8Jqe1j9LAOh/SVzDPAiq/zNPHF+AfFpCqg=; b=p8U9CJwS1onIFraVttnc6VYkjewJxsrYPR9WRChZ6p5vJ6+Oxk/cG/sqVlFUzOZ79u r1kvagjWdY2mAYcc955p2vjBzLzLLxYlHCHqP9vudZQY1lADLKX8gODRhUzvcO3g16z/ AH5YyowJ5NPkdaOIGcnDBmDWERlpccS94lRYM++oTb9pjbVazUxbx+qsrfMEik78cpZ7 kPGGbkZXHgj9vshD9PANqAiPSzm+NxoFphBOu4YBRHLHSJN652vEahRAB9HGJtcRvDFz SenPiRunrY3nBpuJnE9aJqzkP9qDf5DB+Jx9m7Bpn8AxsA1zaf/cFj9Brls6+xD2CSC9 LbLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="dJ/biROu"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s12si1390649eja.47.2019.11.04.14.06.43; Mon, 04 Nov 2019 14:07:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="dJ/biROu"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388562AbfKDWFm (ORCPT + 99 others); Mon, 4 Nov 2019 17:05:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:37024 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389318AbfKDWFf (ORCPT ); Mon, 4 Nov 2019 17:05:35 -0500 Received: from localhost (6.204-14-84.ripe.coltfrance.com [84.14.204.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3D1E321929; Mon, 4 Nov 2019 22:05:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572905134; bh=rADQ7uRo/1bD2l2NSIcwTk6GrNhK79IgegKRNKf2DhA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dJ/biROuY0xDH8RD6tlGMgj1nynrPibCXLFiEly5MuDISIXNWGIdIoiZ2u5nFt6Sn AidvWk9hAAmwPDqZdDv11SB05yZk1imTGZT7Vvu6CS2Ks7zDczK8KsOJoQYdYMX2rl ehqB2LqLte2gp+Lw2Y1bQcpF4nmi1EhbKMQY5ZT0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mark Zhang , Leon Romanovsky , Jason Gunthorpe , Sasha Levin Subject: [PATCH 5.3 039/163] RDMA/nldev: Reshuffle the code to avoid need to rebind QP in error path Date: Mon, 4 Nov 2019 22:43:49 +0100 Message-Id: <20191104212143.134265389@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191104212140.046021995@linuxfoundation.org> References: <20191104212140.046021995@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Leon Romanovsky [ Upstream commit 594e6c5d41ed2471ab0b90f3f0b66cdf618b7ac9 ] Properly unwind QP counter rebinding in case of failure. Trying to rebind the counter after unbiding it is not going to work reliably, move the unbind to the end so it doesn't have to be unwound. Fixes: b389327df905 ("RDMA/nldev: Allow counter manual mode configration through RDMA netlink") Link: https://lore.kernel.org/r/20191002115627.16740-1-leon@kernel.org Reviewed-by: Mark Zhang Signed-off-by: Leon Romanovsky Reviewed-by: Jason Gunthorpe Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/core/nldev.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c index 91e2cc9ddb9f8..f42e856f30729 100644 --- a/drivers/infiniband/core/nldev.c +++ b/drivers/infiniband/core/nldev.c @@ -1787,10 +1787,6 @@ static int nldev_stat_del_doit(struct sk_buff *skb, struct nlmsghdr *nlh, cntn = nla_get_u32(tb[RDMA_NLDEV_ATTR_STAT_COUNTER_ID]); qpn = nla_get_u32(tb[RDMA_NLDEV_ATTR_RES_LQPN]); - ret = rdma_counter_unbind_qpn(device, port, qpn, cntn); - if (ret) - goto err_unbind; - if (fill_nldev_handle(msg, device) || nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, port) || nla_put_u32(msg, RDMA_NLDEV_ATTR_STAT_COUNTER_ID, cntn) || @@ -1799,13 +1795,15 @@ static int nldev_stat_del_doit(struct sk_buff *skb, struct nlmsghdr *nlh, goto err_fill; } + ret = rdma_counter_unbind_qpn(device, port, qpn, cntn); + if (ret) + goto err_fill; + nlmsg_end(msg, nlh); ib_device_put(device); return rdma_nl_unicast(msg, NETLINK_CB(skb).portid); err_fill: - rdma_counter_bind_qpn(device, port, qpn, cntn); -err_unbind: nlmsg_free(msg); err: ib_device_put(device); -- 2.20.1