There are plenty of lengthy code to check the transport type of IB device, or the link layer type of it's port, but actually we are just speculating whether a particular management is supported by the device/port. Thus instead of inferring, we should have our own mechanism for IB management capability/protocol checking, several proposals below. This patch set is the pioneer which try to collecting all the cases where a management helper applicable, and put all the speculating logical together, in order to be easily integrated to the new querying mechanism in future. TODO: The helper in patch 10 and 11 are still to be classified, that is cap_ib() and cap_eth(). The name/description of each helper may not correct enough, those folks who are familiar with these particular parts, your suggestion would be invaluable ;-) Proposals: Sean: https://www.mail-archive.com/linux-rdma@xxxxxxxxxxxxxxx/msg23339.html Doug: https://www.mail-archive.com/linux-rdma@xxxxxxxxxxxxxxx/msg23418.html Jason: https://www.mail-archive.com/linux-rdma@xxxxxxxxxxxxxxx/msg23425.html Michael Wang (11): [PATCH 01/11] IB/Verbs: Use helpers to check transport and link layer [RFC PATCH 02/11] IB/Verbs: Use management helper tech_iboe() for iboe-check [RFC PATCH 03/11] IB/Verbs: Use management helper has_mad() for mad-check [RFC PATCH 04/11] IB/Verbs: Use management helper cap_smi() for smi-check [RFC PATCH 05/11] IB/Verbs: Use management helper has_cm() for cm-check [RFC PATCH 06/11] IB/Verbs: Use management helper has_sa() and cap_sa() for sa-check [RFC PATCH 07/11] IB/Verbs: Use management helper has_mcast() and cap_mcast() for mcast-check [RFC PATCH 08/11] IB/Verbs: Use management helper has_iwarp() for iwarp-check [RFC PATCH 09/11] IB/Verbs: Use management helper has_ipoib() and cap_ipoib() for ipoib-check [RFC PATCH 10/11] IB/Verbs: Use management helper cap_ib() for ib-check [RFC PATCH 11/11] IB/Verbs: Use management helper cap_eth() for eth-check --- drivers/infiniband/core/agent.c | 6 drivers/infiniband/core/cm.c | 6 drivers/infiniband/core/cma.c | 79 ++++------ drivers/infiniband/core/mad.c | 18 +- drivers/infiniband/core/multicast.c | 30 +--- drivers/infiniband/core/sa_query.c | 42 ++--- drivers/infiniband/core/ucm.c | 8 - drivers/infiniband/core/user_mad.c | 6 drivers/infiniband/core/verbs.c | 14 - drivers/infiniband/hw/mlx4/ah.c | 6 drivers/infiniband/hw/mlx4/cq.c | 10 - drivers/infiniband/hw/mlx4/mad.c | 36 +--- drivers/infiniband/hw/mlx4/main.c | 23 +-- drivers/infiniband/hw/mlx4/mlx4_ib.h | 6 drivers/infiniband/hw/mlx4/qp.c | 57 ++----- drivers/infiniband/hw/mlx4/sysfs.c | 16 -- drivers/infiniband/ulp/ipoib/ipoib_main.c | 18 +- include/rdma/ib_verbs.h | 218 ++++++++++++++++++++++++++++++ net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 8 - 19 files changed, 381 insertions(+), 226 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html