Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1790028pxp; Mon, 7 Mar 2022 02:22:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJyGMIIjUZ55Pq16MN/7EeD7QBsMAns4x/lchrbhbtszNaM9KFvA++CYp+XLhaQ+4BA854V7 X-Received: by 2002:a17:906:2ec6:b0:69f:286a:66ab with SMTP id s6-20020a1709062ec600b0069f286a66abmr8493277eji.684.1646648473643; Mon, 07 Mar 2022 02:21:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646648473; cv=none; d=google.com; s=arc-20160816; b=G5d93N20iSwr7MTTbc59kSwPA89lUHo9tT1FsOkxUWtp2e1BnQTzjV1PObP7LDWNUD MlnOgfVqHjcLqIDv1Hwzlzb17+lMpCK9t6pjRqkA6ibTa/al7lGWzWfe2znwnMP6Auwc jhYUw15m/Y2VsTWneFv439XscuO+fC8k2RQPk5F9+w3jBXd3CJrUTmrPwOMGcA3Hyl7X ls+fsuJPAJGRyjyv2BmTKI/wb1ri8DEmpxcpXKzvBToGlZ0DV2M3UyYT2UDglBusCHaw s4Tb2rQr1ez0qpCt0zJOP3tEfrdxVJnr57keiNo62zRbmFUyxqcCZOfbEZvo0WCK0zCA uujA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ugRZMKW0yiPOhjYYpE2elot0PE4qbllhrG62av7tRCw=; b=x/mQqldA9N9FDECJNl69VDd591grg/j18NJnTDeeaZTSy073ij7v1MlxnMbP04P4Jb cNac7QCqWpF3RdHzkdsFCnOElx874DR5mMvi5Z2t6DxQO/JEsUunZ/ZSj3xSf8kf1meH ZASr0apTNBAj9WDqPDYThiK8zBz+vNbw5unFU+hUMzUHqVQqjMRa3+TfOwvzF1md6f7S 9YnQTSPMRoBM4PGaPdvfZQkbzQQYtFQb5CqJHmAcBuWsPJOdzgJee8h4812dKpWRZ923 KNET8x6SKXxgC90ZGhKN/uE4AGNd5nIEzS2KTXQy5tA7vLZBZekmfZUOpuDl4s7CRiZ4 XMuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=hb2atqm4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j8-20020a170906410800b006d6426bab33si6978554ejk.62.2022.03.07.02.20.50; Mon, 07 Mar 2022 02:21:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=hb2atqm4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239680AbiCGJuC (ORCPT + 99 others); Mon, 7 Mar 2022 04:50:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237998AbiCGJhz (ORCPT ); Mon, 7 Mar 2022 04:37:55 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3A8F6E57C; Mon, 7 Mar 2022 01:31:51 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C45546112D; Mon, 7 Mar 2022 09:31:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C3686C340F3; Mon, 7 Mar 2022 09:31:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1646645511; bh=IcPN0zA1ei5ek21ILpNh54yqLo/XHVgxtqlXUxuRxf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hb2atqm4XukNYTeM+79pj8PmtMRfh3OVokabVT/ixvF3aOcUefvul9E8KYPBlpwIv tmXI0byG8Incq/oAadzVHMeCIT/QVooPvycpjSWUI9HaLj2AWtB0dmEfPSchSaAowO +ErszQENmWI83vLH/7ILpNX+bl0apiTQ9Exw/vt0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "D. Wythe" , "David S. Miller" Subject: [PATCH 5.10 053/105] net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server Date: Mon, 7 Mar 2022 10:18:56 +0100 Message-Id: <20220307091645.674559860@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220307091644.179885033@linuxfoundation.org> References: <20220307091644.179885033@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: D. Wythe commit 4940a1fdf31c39f0806ac831cde333134862030b upstream. The problem of SMC_CLC_DECL_ERR_REGRMB on the server is very clear. Based on the fact that whether a new SMC connection can be accepted or not depends on not only the limit of conn nums, but also the available entries of rtoken. Since the rtoken release is trigger by peer, while the conn nums is decrease by local, tons of thing can happen in this time difference. This only thing that needs to be mentioned is that now all connection creations are completely protected by smc_server_lgr_pending lock, it's enough to check only the available entries in rtokens_used_mask. Fixes: cd6851f30386 ("smc: remote memory buffers (RMBs)") Signed-off-by: D. Wythe Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/smc/smc_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/net/smc/smc_core.c +++ b/net/smc/smc_core.c @@ -1316,7 +1316,8 @@ int smc_conn_create(struct smc_sock *smc (ini->smcd_version == SMC_V2 || lgr->vlan_id == ini->vlan_id) && (role == SMC_CLNT || ini->is_smcd || - lgr->conns_num < SMC_RMBS_PER_LGR_MAX)) { + (lgr->conns_num < SMC_RMBS_PER_LGR_MAX && + !bitmap_full(lgr->rtokens_used_mask, SMC_RMBS_PER_LGR_MAX)))) { /* link group found */ ini->first_contact_local = 0; conn->lgr = lgr;