From: Leon Romanovsky <leonro@xxxxxxxxxxxx> This patch set introduces vector CALC support. This feature takes as input several vectors of equal length, combines them with a single operation type, producing result vectors which are sent to the destination. The proposed operations are "add, and, or, xor, max, min" and "swap endianness". The hardware processes the data an MTU of at a time, processing the elements of each segment in parallel. This patch set depends on commit b4ff3a36d3e4 ("net/mlx5: Use offset based reserved field names in the IFC header file") which is part of net tree. The series consists from two parts: IB and net. NET part (patches #1-3) * Patch #1 fixes ATOMIC capability mode. This change has no impact on * the system, since MAX property is not in use for ATOMIC. * Patch #2 merges two device capability calls in one. * Patch #3 adds infrastructure to support vector CALC querying. IB part (patches #4-8) * Patch #4 refactors device query code by eliminating the unnecessary zeroing of variables * Patch #5 converts device capability mask from u32 to be u64 and support more than 32 device capabilities. * Patch #6 adds vector CALC device capability flag. * Patch #7 exports all possible supported operations. * Patch #8 advertises the mlx5 driver support of vector CALC. Leon Romanovsky (8): net/mlx5_core: Fix caching ATOMIC endian mode capability net/mlx5_core: Refactor device capability function net/mlx5_core: Introduce offload arithmetic hardware capabilities IB/core: Replace setting the zero values in ib_uverbs_ex_query_device IB/{core,ulp} Support above 32 possible device capability flags IB/core: Add offload arithmetic operations support IB/core: Exposure supported CALC capabilities IB/mlx5: Exposure offload arithmetic operations drivers/infiniband/core/uverbs_cmd.c | 29 +++++++------ drivers/infiniband/hw/mlx5/main.c | 3 ++ drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 57 ++++++-------------------- drivers/net/ethernet/mellanox/mlx5/core/main.c | 24 +++++++---- include/linux/mlx5/device.h | 6 +++ include/linux/mlx5/driver.h | 3 +- include/linux/mlx5/mlx5_ifc.h | 31 +++++++++++++- include/rdma/ib_verbs.h | 29 ++++++++++++- include/uapi/rdma/ib_user_verbs.h | 13 ++++++ 10 files changed, 124 insertions(+), 73 deletions(-) -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html