public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Wen Gu <guwen@linux.alibaba.com>
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, guangguan.wang@linux.alibaba.com,
	linux-s390@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH net-next v4 5/9] net/smc: define a reserved CHID range for virtual ISM devices
Date: Thu,  7 Dec 2023 11:49:50 +0800	[thread overview]
Message-ID: <1701920994-73705-6-git-send-email-guwen@linux.alibaba.com> (raw)
In-Reply-To: <1701920994-73705-1-git-send-email-guwen@linux.alibaba.com>

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 <guwen@linux.alibaba.com>
---
 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


  parent reply	other threads:[~2023-12-07  3:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-07  3:49 [PATCH net-next v4 0/9] net/smc: implement SMCv2.1 virtual ISM device support Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 1/9] net/smc: Rename some 'fce' to 'fce_v2x' for clarity Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 2/9] net/smc: introduce sub-functions for smc_clc_send_confirm_accept() Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 3/9] net/smc: support SMCv2.x supplemental features negotiation Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 4/9] net/smc: introduce virtual ISM device support feature Wen Gu
2023-12-07  3:49 ` Wen Gu [this message]
2023-12-07  3:49 ` [PATCH net-next v4 6/9] net/smc: compatible with 128-bits extend GID of virtual ISM device Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 7/9] net/smc: disable SEID on non-s390 archs where virtual ISM may be used Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 8/9] net/smc: manage system EID in SMC stack instead of ISM driver Wen Gu
2023-12-07  3:49 ` [PATCH net-next v4 9/9] net/smc: support extended GID in SMC-D lgr netlink attribute Wen Gu
2023-12-08  0:49 ` [PATCH net-next v4 0/9] net/smc: implement SMCv2.1 virtual ISM device support Jakub Kicinski
2023-12-08  3:30   ` Wen Gu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1701920994-73705-6-git-send-email-guwen@linux.alibaba.com \
    --to=guwen@linux.alibaba.com \
    --cc=agordeev@linux.ibm.com \
    --cc=alibuda@linux.alibaba.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gor@linux.ibm.com \
    --cc=guangguan.wang@linux.alibaba.com \
    --cc=hca@linux.ibm.com \
    --cc=jaka@linux.ibm.com \
    --cc=kgraul@linux.ibm.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=raspl@linux.ibm.com \
    --cc=schnelle@linux.ibm.com \
    --cc=svens@linux.ibm.com \
    --cc=tonylu@linux.alibaba.com \
    --cc=wenjia@linux.ibm.com \
    --cc=wintera@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox