mlx4_core: Don't read reserved fields in mlx4_QUERY_ADAPTER()
[linux-block.git] / drivers / infiniband / hw / mlx4 / main.c
index d9fc822a146866a75061cc0e78edb608bb026271..d2f50b62fcb6ff7a44786967dc5758ae956285fd 100644 (file)
@@ -468,6 +468,7 @@ static int init_node_data(struct mlx4_ib_dev *dev)
        if (err)
                goto out;
 
+       dev->dev->rev_id = be32_to_cpup((__be32 *) (out_mad->data + 32));
        memcpy(&dev->ib_dev.node_guid, out_mad->data + 12, 8);
 
 out:
@@ -607,6 +608,11 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
        ibdev->ib_dev.detach_mcast      = mlx4_ib_mcg_detach;
        ibdev->ib_dev.process_mad       = mlx4_ib_process_mad;
 
+       ibdev->ib_dev.alloc_fmr         = mlx4_ib_fmr_alloc;
+       ibdev->ib_dev.map_phys_fmr      = mlx4_ib_map_phys_fmr;
+       ibdev->ib_dev.unmap_fmr         = mlx4_ib_unmap_fmr;
+       ibdev->ib_dev.dealloc_fmr       = mlx4_ib_fmr_dealloc;
+
        if (init_node_data(ibdev))
                goto err_map;