RDMA/mlx4: Delete duplicated offsetofend implementation
authorLeon Romanovsky <leonro@mellanox.com>
Tue, 10 Mar 2020 09:14:29 +0000 (11:14 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 13 Mar 2020 13:42:48 +0000 (10:42 -0300)
Convert mlx4 to use in-kernel offsetofend() instead
of its duplicated implementation.

Link: https://lore.kernel.org/r/20200310091438.248429-3-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx4/main.c

index 2f5d9b1..a66518a 100644 (file)
@@ -434,9 +434,6 @@ int mlx4_ib_gid_index_to_real_index(struct mlx4_ib_dev *ibdev,
        return real_index;
 }
 
-#define field_avail(type, fld, sz) (offsetof(type, fld) + \
-                                   sizeof(((type *)0)->fld) <= (sz))
-
 static int mlx4_ib_query_device(struct ib_device *ibdev,
                                struct ib_device_attr *props,
                                struct ib_udata *uhw)
@@ -447,7 +444,7 @@ static int mlx4_ib_query_device(struct ib_device *ibdev,
        int err;
        int have_ib_ports;
        struct mlx4_uverbs_ex_query_device cmd;
-       struct mlx4_uverbs_ex_query_device_resp resp = {.comp_mask = 0};
+       struct mlx4_uverbs_ex_query_device_resp resp = {};
        struct mlx4_clock_params clock_params;
 
        if (uhw->inlen) {
@@ -602,7 +599,7 @@ static int mlx4_ib_query_device(struct ib_device *ibdev,
                        sizeof(struct mlx4_wqe_data_seg);
        }
 
-       if (field_avail(typeof(resp), rss_caps, uhw->outlen)) {
+       if (offsetofend(typeof(resp), rss_caps) <= uhw->outlen) {
                if (props->rss_caps.supported_qpts) {
                        resp.rss_caps.rx_hash_function =
                                MLX4_IB_RX_HASH_FUNC_TOEPLITZ;
@@ -626,7 +623,7 @@ static int mlx4_ib_query_device(struct ib_device *ibdev,
                                       sizeof(resp.rss_caps);
        }
 
-       if (field_avail(typeof(resp), tso_caps, uhw->outlen)) {
+       if (offsetofend(typeof(resp), tso_caps) <= uhw->outlen) {
                if (dev->dev->caps.max_gso_sz &&
                    ((mlx4_ib_port_link_layer(ibdev, 1) ==
                    IB_LINK_LAYER_ETHERNET) ||