summaryrefslogtreecommitdiffstats
path: root/net/smc/smc_pnet.h
diff options
context:
space:
mode:
authorUrsula Braun2018-06-28 19:05:05 +0200
committerDavid S. Miller2018-06-30 13:42:25 +0200
commit0afff91c6f5ecef27715ea71e34dc2baacba1060 (patch)
treed90ff2e8ba3cb962dd7ea451fdf7fe2a652ad516 /net/smc/smc_pnet.h
parentnet/smc: determine port attributes independent from pnet table (diff)
downloadkernel-qcow2-linux-0afff91c6f5ecef27715ea71e34dc2baacba1060.tar.gz
kernel-qcow2-linux-0afff91c6f5ecef27715ea71e34dc2baacba1060.tar.xz
kernel-qcow2-linux-0afff91c6f5ecef27715ea71e34dc2baacba1060.zip
net/smc: add pnetid support
s390 hardware supports the definition of a so-call Physical NETwork IDentifier (short PNETID) per network device port. These PNETIDS can be used to identify network devices that are attached to the same physical network (broadcast domain). On s390 try to use the PNETID of the ethernet device port used for initial connecting, and derive the IB device port used for SMC RDMA traffic. On platforms without PNETID support fall back to the existing solution of a configured pnet table. 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.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/net/smc/smc_pnet.h b/net/smc/smc_pnet.h
index 5a29519db976..ad4455cde9e7 100644
--- a/net/smc/smc_pnet.h
+++ b/net/smc/smc_pnet.h
@@ -12,8 +12,22 @@
#ifndef _SMC_PNET_H
#define _SMC_PNET_H
+#if IS_ENABLED(CONFIG_HAVE_PNETID)
+#include <asm/pnet.h>
+#endif
+
struct smc_ib_device;
+static inline int smc_pnetid_by_dev_port(struct device *dev,
+ unsigned short port, u8 *pnetid)
+{
+#if IS_ENABLED(CONFIG_HAVE_PNETID)
+ return pnet_id_by_dev_port(dev, port, pnetid);
+#else
+ return -ENOENT;
+#endif
+}
+
int smc_pnet_init(void) __init;
void smc_pnet_exit(void);
int smc_pnet_remove_by_ibdev(struct smc_ib_device *ibdev);