Received: by 2002:a05:7412:b130:b0:e2:908c:2ebd with SMTP id az48csp1670778rdb; Sun, 19 Nov 2023 05:59:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IGEO/261v/nfdJTD8d8YO2/7hEvbx8zmok5D2VKqwTxYdWuUwHBolccPTXXprKNKPqIC8eD X-Received: by 2002:a05:6a00:2314:b0:6c6:a46f:25f3 with SMTP id h20-20020a056a00231400b006c6a46f25f3mr6797687pfh.13.1700402359008; Sun, 19 Nov 2023 05:59:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700402358; cv=none; d=google.com; s=arc-20160816; b=04XTwI/01WXC7EzxwLsfetkM1i+FV8qpPu1azLBHOsul20fTagZ75swTAGJTd0ONBG UiGuq7SUEIs52iRNTRDmT0xgjg2+FV/t7NDdnL6FXYlOa91nUgt8Ne7gjFe7U9uc7qZ9 sRC9nBCSIMjKkg3sQyKgpkhRJKaXdIJqRIgHqd18Qt59kSEAlmlcFyb2uHuk5UZ9k0QV ubj/qPN/q/jaJdPYFz5qF5HEZv2DDa0JXMUs7pycDgT3nMl3yFwX0E0rxbytE2hwO9lX fHXU2STeJJ4MWsk9vX9VuN5IhtGHAihHnd6geL11ZNVF+/CmexVbDdri2z9CwnhvrX2C SvQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=gfeh3LoKNNYl4z0aep2eflTTKWie70Gcrf5+qxiqUow=; fh=KQ6DtOg2s6EjX2UG8PvNJAxkkgxsPAP99idIif6uGd8=; b=b5/XccMlyqIPFSpR2H8MAcXUox9Kvd6hFfH8qyqmsxYDVq4jiYuu/OCeoRvrBB+tKP rQBF0KsRKX+Axk81CuoadlBPZhuZFVeJAs9vCcTnV770ItbMeADoF58EFahD4haqwxy3 7t7Q5vWwVt/DDv5AZieXy/lBqb0H2/5IMroBPmMdZZYXpAFUOBmdtt77Q8N2Oj+sXeRJ edjMU00cuhFkntQ2QnnOCbSuXd7e0l4c8/Zq/Bn0GL/w22EpPWyDKk4aQzletz4LCOC5 0DV4FcnqZg4pneFX9YPg0fzlZHfNJ500sUYs8AioHMCFQ4T4Iav8TUjCdE/EZ48+ZA7B 0Drw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id e17-20020a056a001a9100b006cb911b72eesi559928pfv.401.2023.11.19.05.59.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 05:59:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id D73928061164; Sun, 19 Nov 2023 05:59:10 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231451AbjKSN6b (ORCPT + 99 others); Sun, 19 Nov 2023 08:58:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231361AbjKSN6Y (ORCPT ); Sun, 19 Nov 2023 08:58:24 -0500 Received: from out30-97.freemail.mail.aliyun.com (out30-97.freemail.mail.aliyun.com [115.124.30.97]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8FF9D5B; Sun, 19 Nov 2023 05:58:13 -0800 (PST) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R641e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045170;MF=guwen@linux.alibaba.com;NM=1;PH=DS;RN=21;SR=0;TI=SMTPD_---0VweihWZ_1700402287; Received: from localhost(mailfrom:guwen@linux.alibaba.com fp:SMTPD_---0VweihWZ_1700402287) by smtp.aliyun-inc.com; Sun, 19 Nov 2023 21:58:09 +0800 From: Wen Gu To: wintera@linux.ibm.com, wenjia@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, kgraul@linux.ibm.com, jaka@linux.ibm.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, alibuda@linux.alibaba.com, tonylu@linux.alibaba.com, guwen@linux.alibaba.com, raspl@linux.ibm.com, schnelle@linux.ibm.com, linux-s390@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/7] net/smc: define a reserved CHID range for virtual ISM devices Date: Sun, 19 Nov 2023 21:57:54 +0800 Message-Id: <1700402277-93750-5-git-send-email-guwen@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1700402277-93750-1-git-send-email-guwen@linux.alibaba.com> References: <1700402277-93750-1-git-send-email-guwen@linux.alibaba.com> X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Sun, 19 Nov 2023 05:59:11 -0800 (PST) According to virtual ISM support feature defined by SMCv2.1, CHIDs in the range 0xFF00 to 0xFFFF are reserved for use by virtual ISM devices. And two helpers are introduced to distinguish virtual ISM devices from the existing platform firmware ISM devices. Signed-off-by: Wen Gu --- net/smc/smc_ism.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/net/smc/smc_ism.h b/net/smc/smc_ism.h index 832b2f4..d1228a6 100644 --- a/net/smc/smc_ism.h +++ b/net/smc/smc_ism.h @@ -15,6 +15,8 @@ #include "smc.h" +#define SMC_VIRTUAL_ISM_CHID_MASK 0xFF00 + struct smcd_dev_list { /* List of SMCD devices */ struct list_head list; struct mutex mutex; /* Protects list of devices */ @@ -56,4 +58,22 @@ static inline int smc_ism_write(struct smcd_dev *smcd, u64 dmb_tok, return rc < 0 ? rc : 0; } +static inline bool __smc_ism_is_virtual(u16 chid) +{ + /* CHIDs in range of 0xFF00 to 0xFFFF are reserved + * for virtual ISM device. + * + * loopback-ism: 0xFFFF + * virtio-ism: 0xFF00 ~ 0xFFFE + */ + return ((chid & 0xFF00) == 0xFF00); +} + +static inline bool smc_ism_is_virtual(struct smcd_dev *smcd) +{ + u16 chid = smcd->ops->get_chid(smcd); + + return __smc_ism_is_virtual(chid); +} + #endif -- 1.8.3.1