summaryrefslogtreecommitdiff
path: root/net/smc/smc_pnet.h
diff options
context:
space:
mode:
authorHans Wippel <hwippel@linux.ibm.com>2019-02-21 13:01:02 +0100
committerDavid S. Miller <davem@davemloft.net>2019-02-21 10:34:37 -0800
commit64e28b52c7a6616217bee67ba2ad886f478f9737 (patch)
treedcba912220e58ca0ed6adf015b9eb7f2c7863b90 /net/smc/smc_pnet.h
parentf3d74b2245a0e8b994f53df1d7982d367fc63dfe (diff)
net/smc: add pnet table namespace support
This patch adds namespace support to the pnet table code. Each network namespace gets its own pnet table. Infiniband and smcd device pnetids can only be modified in the initial namespace. In other namespaces they can still be used as if they were set by the underlying hardware. Signed-off-by: Hans Wippel <hwippel@linux.ibm.com> Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_pnet.h')
-rw-r--r--net/smc/smc_pnet.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/smc/smc_pnet.h b/net/smc/smc_pnet.h
index 37044e4ee50f..5eac42fb45d0 100644
--- a/net/smc/smc_pnet.h
+++ b/net/smc/smc_pnet.h
@@ -19,6 +19,16 @@
struct smc_ib_device;
struct smcd_dev;
+/**
+ * struct smc_pnettable - SMC PNET table anchor
+ * @lock: Lock for list action
+ * @pnetlist: List of PNETIDs
+ */
+struct smc_pnettable {
+ rwlock_t lock;
+ struct list_head pnetlist;
+};
+
static inline int smc_pnetid_by_dev_port(struct device *dev,
unsigned short port, u8 *pnetid)
{
@@ -30,7 +40,9 @@ static inline int smc_pnetid_by_dev_port(struct device *dev,
}
int smc_pnet_init(void) __init;
+int smc_pnet_net_init(struct net *net);
void smc_pnet_exit(void);
+void smc_pnet_net_exit(struct net *net);
void smc_pnet_find_roce_resource(struct sock *sk,
struct smc_ib_device **smcibdev, u8 *ibport,
unsigned short vlan_id, u8 gid[]);