main.c (3ce60f443b143e649aa26cd3f668d645434647ac) | main.c (2019d70e919f01c43975b8d9ea2803b890eabba9) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 2/* 3 * Copyright (c) 2013-2020, Mellanox Technologies inc. All rights reserved. 4 * Copyright (c) 2020, Intel Corporation. All rights reserved. 5 */ 6 7#include <linux/debugfs.h> 8#include <linux/highmem.h> --- 802 unchanged lines hidden (view full) --- 811 return -EINVAL; 812 813 memset(props, 0, sizeof(*props)); 814 err = mlx5_query_system_image_guid(ibdev, 815 &props->sys_image_guid); 816 if (err) 817 return err; 818 | 1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 2/* 3 * Copyright (c) 2013-2020, Mellanox Technologies inc. All rights reserved. 4 * Copyright (c) 2020, Intel Corporation. All rights reserved. 5 */ 6 7#include <linux/debugfs.h> 8#include <linux/highmem.h> --- 802 unchanged lines hidden (view full) --- 811 return -EINVAL; 812 813 memset(props, 0, sizeof(*props)); 814 err = mlx5_query_system_image_guid(ibdev, 815 &props->sys_image_guid); 816 if (err) 817 return err; 818 |
819 err = mlx5_query_max_pkeys(ibdev, &props->max_pkeys); 820 if (err) 821 return err; | 819 props->max_pkeys = dev->pkey_table_len; |
822 823 err = mlx5_query_vendor_id(ibdev, &props->vendor_id); 824 if (err) 825 return err; 826 827 props->fw_ver = ((u64)fw_rev_maj(dev->mdev) << 32) | 828 (fw_rev_min(dev->mdev) << 16) | 829 fw_rev_sub(dev->mdev); --- 2144 unchanged lines hidden (view full) --- 2974 int port; 2975 2976 for (port = 1; port <= dev->num_ports; port++) 2977 mlx5_query_ext_port_caps(dev, port); 2978} 2979 2980static int __get_port_caps(struct mlx5_ib_dev *dev, u8 port) 2981{ | 820 821 err = mlx5_query_vendor_id(ibdev, &props->vendor_id); 822 if (err) 823 return err; 824 825 props->fw_ver = ((u64)fw_rev_maj(dev->mdev) << 32) | 826 (fw_rev_min(dev->mdev) << 16) | 827 fw_rev_sub(dev->mdev); --- 2144 unchanged lines hidden (view full) --- 2972 int port; 2973 2974 for (port = 1; port <= dev->num_ports; port++) 2975 mlx5_query_ext_port_caps(dev, port); 2976} 2977 2978static int __get_port_caps(struct mlx5_ib_dev *dev, u8 port) 2979{ |
2982 struct ib_device_attr *dprops = NULL; | |
2983 struct ib_port_attr *pprops = NULL; 2984 int err = -ENOMEM; 2985 2986 pprops = kzalloc(sizeof(*pprops), GFP_KERNEL); 2987 if (!pprops) 2988 goto out; 2989 | 2980 struct ib_port_attr *pprops = NULL; 2981 int err = -ENOMEM; 2982 2983 pprops = kzalloc(sizeof(*pprops), GFP_KERNEL); 2984 if (!pprops) 2985 goto out; 2986 |
2990 dprops = kmalloc(sizeof(*dprops), GFP_KERNEL); 2991 if (!dprops) 2992 goto out; 2993 2994 err = mlx5_ib_query_device(&dev->ib_dev, dprops, NULL); 2995 if (err) { 2996 mlx5_ib_warn(dev, "query_device failed %d\n", err); 2997 goto out; 2998 } 2999 | |
3000 err = mlx5_ib_query_port(&dev->ib_dev, port, pprops); 3001 if (err) { 3002 mlx5_ib_warn(dev, "query_port %d failed %d\n", 3003 port, err); 3004 goto out; 3005 } 3006 | 2987 err = mlx5_ib_query_port(&dev->ib_dev, port, pprops); 2988 if (err) { 2989 mlx5_ib_warn(dev, "query_port %d failed %d\n", 2990 port, err); 2991 goto out; 2992 } 2993 |
3007 dev->port_caps[port - 1].pkey_table_len = dprops->max_pkeys; | |
3008 dev->port_caps[port - 1].gid_table_len = pprops->gid_tbl_len; 3009 mlx5_ib_dbg(dev, "port %d: pkey_table_len %d, gid_table_len %d\n", | 2994 dev->port_caps[port - 1].gid_table_len = pprops->gid_tbl_len; 2995 mlx5_ib_dbg(dev, "port %d: pkey_table_len %d, gid_table_len %d\n", |
3010 port, dprops->max_pkeys, pprops->gid_tbl_len); | 2996 port, dev->pkey_table_len, pprops->gid_tbl_len); |
3011 3012out: 3013 kfree(pprops); | 2997 2998out: 2999 kfree(pprops); |
3014 kfree(dprops); 3015 | |
3016 return err; 3017} 3018 3019static int get_port_caps(struct mlx5_ib_dev *dev, u8 port) 3020{ 3021 /* For representors use port 1, is this is the only native 3022 * port 3023 */ --- 950 unchanged lines hidden (view full) --- 3974 break; 3975 } 3976 } else { 3977 err = get_port_caps(dev, mlx5_core_native_port_num(mdev)); 3978 } 3979 if (err) 3980 goto err_mp; 3981 | 3000 return err; 3001} 3002 3003static int get_port_caps(struct mlx5_ib_dev *dev, u8 port) 3004{ 3005 /* For representors use port 1, is this is the only native 3006 * port 3007 */ --- 950 unchanged lines hidden (view full) --- 3958 break; 3959 } 3960 } else { 3961 err = get_port_caps(dev, mlx5_core_native_port_num(mdev)); 3962 } 3963 if (err) 3964 goto err_mp; 3965 |
3966 err = mlx5_query_max_pkeys(&dev->ib_dev, &dev->pkey_table_len); 3967 if (err) 3968 goto err_mp; 3969 |
|
3982 if (mlx5_use_mad_ifc(dev)) 3983 get_ext_port_caps(dev); 3984 3985 dev->ib_dev.node_type = RDMA_NODE_IB_CA; 3986 dev->ib_dev.local_dma_lkey = 0 /* not supported for now */; 3987 dev->ib_dev.phys_port_cnt = dev->num_ports; 3988 dev->ib_dev.num_comp_vectors = mlx5_comp_vectors_count(mdev); 3989 dev->ib_dev.dev.parent = mdev->device; --- 905 unchanged lines hidden --- | 3970 if (mlx5_use_mad_ifc(dev)) 3971 get_ext_port_caps(dev); 3972 3973 dev->ib_dev.node_type = RDMA_NODE_IB_CA; 3974 dev->ib_dev.local_dma_lkey = 0 /* not supported for now */; 3975 dev->ib_dev.phys_port_cnt = dev->num_ports; 3976 dev->ib_dev.num_comp_vectors = mlx5_comp_vectors_count(mdev); 3977 dev->ib_dev.dev.parent = mdev->device; --- 905 unchanged lines hidden --- |