On 09/16/2015 11:56 AM, Bodong Wang wrote: > Signed-off-by: Bodong Wang > --- > drivers/infiniband/hw/mlx4/main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c > index 8be6db8..a70ca6a 100644 > --- a/drivers/infiniband/hw/mlx4/main.c > +++ b/drivers/infiniband/hw/mlx4/main.c > @@ -217,6 +217,9 @@ static int mlx4_ib_query_device(struct ib_device *ibdev, > props->device_cap_flags |= IB_DEVICE_MANAGED_FLOW_STEERING; > } > > + props->csum_cap.eth_csum_cap |= IB_CSUM_SUPPORT_RAW; > + props->csum_cap.ib_csum_cap |= IB_CSUM_SUPPORT_UD; > + > props->vendor_id = be32_to_cpup((__be32 *) (out_mad->data + 36)) & > 0xffffff; > props->vendor_part_id = dev->dev->persist->pdev->device; > This patch highlights something I didn't think about on the previous patch. Why separate eth/ib if you have per QP flags? The QP denotes the ib/eth relationship without the need to separate it into two different caps. In other words, you can never have an IB qp type on eth because the only eth QP types we support other than RAW are all RDMA and not IP. Really, there's enough spare bits in ib_device_cap_flags that you could do away with the new caps entirely. Right now, we support UD (which we already have a flag for), we can add two flags (for RAW and RC) and that should cover all of the foreseeable options as that would allow us to extend IP CSUM support to cover connected mode and cover all of the current options. I don't see us doing IP traffic in any other situation, so I thing that should suffice. Bits 25 and 26 could be used for the two new bits. Then you just need to extend the bits to user space. -- Doug Ledford GPG KeyID: 0E572FDD