Received: by 10.192.165.156 with SMTP id m28csp1293481imm; Wed, 18 Apr 2018 07:26:58 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/f++3+CmX6mQANVJPRFgCoXxeOCHyUJVYrtbjXlOUNaah3vmuO+f29kE11BZeNBYEUzLsl X-Received: by 10.98.198.195 with SMTP id x64mr2157949pfk.11.1524061618547; Wed, 18 Apr 2018 07:26:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524061618; cv=none; d=google.com; s=arc-20160816; b=iz7a5lGI9KnG3M9swNp/qENRsY+Dim7XPAn6I7wr/mmDzmhqUvAL8aqfD81vqvyAGU oNeWxOcUqI3Ezf8L70J5vjnSO5MpdN2zfBncXPehqAfbgCuTSTnkuxCi+cY2BwHC/ceh bSILHTBN9FVCQN8zaTVmE2rJvyLE/J7/UPXSX5hAbdN744gBmutozFGfSj8iA2eKGopi +KfCnvU6r5+HmZS0w4FjO574mFJ49jgPwlnXQdG/XmM2LUp1GxDF2u3xZf/65gLCN112 Qlu3PISAgRU6BGUv7tOJSkVNqNjjn2P/55EPhPFai/Ye28LUNtZnK6V4Klv0RvjxTxvL RqJg== 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 :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=TkiDJOX0jrB3YrgNiJuQzs2cTqmnjm5JTLxGleHbzg8=; b=Dlj5kGwBdbX8PlrvH+dR82WEk5DSuNU429ulkERHXcGYuykGA3wqtPz/Q5n8DZkB74 jJktRCISmEYAaLnXad4boE7QBlWrjLXPDsDwa/GqtnPqVz/606EtpvLt2s7O82puw2b8 E4NKDEMVbn4iE8dxi5Ats9pcJZgFct522lXFjRuzsox7E5hX+aWF8dAolejZL4DhO9bG EgCT0S10FApV0QPcC+3Lobz9jNBWWMEzwiQ1lzWCNmyA4JvpUfHZtT+6z09LKCp2I3/3 CC8fzZxK2sYjyWP5GUVxTvHQlcUghlx84csEZeDN9cLVEF5hVeg8zygrLGPkyGviG3+c IViQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=hUPKnwYn; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a189si1124121pgc.586.2018.04.18.07.26.43; Wed, 18 Apr 2018 07:26:58 -0700 (PDT) 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=@oracle.com header.s=corp-2017-10-26 header.b=hUPKnwYn; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753819AbeDROZY (ORCPT + 99 others); Wed, 18 Apr 2018 10:25:24 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:33642 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753745AbeDROZV (ORCPT ); Wed, 18 Apr 2018 10:25:21 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w3IEKsnu065802; Wed, 18 Apr 2018 14:25:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : mime-version : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=TkiDJOX0jrB3YrgNiJuQzs2cTqmnjm5JTLxGleHbzg8=; b=hUPKnwYn+rO1eJ4V0zuD4EjGoXWL5Pmui7y5otgUOKQgvEuhfR8z/7JDni4MLB6MKLHM v/3Czk0LnudncSNPvjbVUCfkK/0S75A61k9lscnkl1VGAwvblIToBLF8KyXcmdm+0zBd s7VrEwHVOw1MoHa5/Quf316ZEfUw65zwFWap9JTpcZtG7rj1E/PBtiGvmiN66MRhHhjk IdpZ1I0WR7f+LZ0KN3AtDHnvz9my4nDgw20nzvC0wr723QddUvgCwSNSN2q7mbQtdgR6 mSCeWENYOphiJapIWagvmHrT4mdT7o4p73z6g1uBOZaALkF01CZuvytHTyMB0KMcSPqq DA== Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp2130.oracle.com with ESMTP id 2hdrxnavx6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 18 Apr 2018 14:25:02 +0000 Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w3IEP2EE025971 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 18 Apr 2018 14:25:02 GMT Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w3IEP1M3010058; Wed, 18 Apr 2018 14:25:01 GMT Received: from lab02.no.oracle.com (/10.172.144.56) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 18 Apr 2018 07:25:01 -0700 From: =?UTF-8?q?H=C3=A5kon=20Bugge?= To: Doug Ledford , Don Hiatt , Dasaratharaman Chandramouli , Ira Weiny , Sean Hefty Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?H=C3=A5kon=20Bugge?= Subject: [PATCH] IB/core: Make ib_mad_client_id atomic Date: Wed, 18 Apr 2018 16:24:50 +0200 Message-Id: <20180418142450.15581-1-Haakon.Bugge@oracle.com> X-Mailer: git-send-email 2.13.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8866 signatures=668698 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1804180131 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Two kernel threads may get the same value for agent.hi_tid, if the agents are registered for different ports. As of now, this works, as the agent list is per port. It is however confusing and not future robust. Hence, making it atomic. Signed-off-by: HÃ¥kon Bugge Reviewed-by: Jack Morgenstein --- drivers/infiniband/core/mad.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index c50596f7f98a..b28452a55a08 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c @@ -59,7 +59,7 @@ module_param_named(recv_queue_size, mad_recvq_size, int, 0444); MODULE_PARM_DESC(recv_queue_size, "Size of receive queue in number of work requests"); static struct list_head ib_mad_port_list; -static u32 ib_mad_client_id = 0; +static atomic_t ib_mad_client_id = ATOMIC_INIT(0); /* Port list lock */ static DEFINE_SPINLOCK(ib_mad_port_list_lock); @@ -377,7 +377,7 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device, } spin_lock_irqsave(&port_priv->reg_lock, flags); - mad_agent_priv->agent.hi_tid = ++ib_mad_client_id; + mad_agent_priv->agent.hi_tid = atomic_inc_return(&ib_mad_client_id); /* * Make sure MAD registration (if supplied) -- 2.13.6