CC: kbuild-...@lists.01.org CC: linux-ker...@vger.kernel.org TO: Leon Romanovsky <leo...@mellanox.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 581cb3a26baf846ee9636214afaa5333919875b1 commit: 4835709176e8ccf6561abc9f5c405293e008095f RDMA/mlx5: Don't fake udata for kernel path date: 8 months ago :::::: branch date: 14 hours ago :::::: commit date: 8 months ago config: powerpc-randconfig-m031-20200911 (attached as .config) compiler: powerpc64-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> New smatch warnings: drivers/infiniband/hw/mlx5/main.c:1189 mlx5_ib_query_device() error: we previously assumed 'uhw' could be null (see line 837) Old smatch warnings: drivers/infiniband/hw/mlx5/main.c:614 set_roce_addr() error: we previously assumed 'gid' could be null (see line 590) drivers/infiniband/hw/mlx5/main.c:1939 mlx5_ib_alloc_ucontext() error: uninitialized symbol 'dump_fill_mkey'. # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4835709176e8ccf6561abc9f5c405293e008095f git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 4835709176e8ccf6561abc9f5c405293e008095f vim +/uhw +1189 drivers/infiniband/hw/mlx5/main.c 1b5daf11b01512 Majd Dibbiny 2015-06-04 813 e126ba97dba9ed Eli Cohen 2013-07-07 814 static int mlx5_ib_query_device(struct ib_device *ibdev, 2528e33e680921 Matan Barak 2015-06-11 815 struct ib_device_attr *props, 2528e33e680921 Matan Barak 2015-06-11 816 struct ib_udata *uhw) e126ba97dba9ed Eli Cohen 2013-07-07 817 { 4835709176e8cc Leon Romanovsky 2020-01-15 818 size_t uhw_outlen = (uhw) ? uhw->outlen : 0; e126ba97dba9ed Eli Cohen 2013-07-07 819 struct mlx5_ib_dev *dev = to_mdev(ibdev); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 820 struct mlx5_core_dev *mdev = dev->mdev; e126ba97dba9ed Eli Cohen 2013-07-07 821 int err = -ENOMEM; 288c01b746aab4 Eli Cohen 2016-10-27 822 int max_sq_desc; e126ba97dba9ed Eli Cohen 2013-07-07 823 int max_rq_sg; e126ba97dba9ed Eli Cohen 2013-07-07 824 int max_sq_sg; e0238a6a369eaa Sagi Grimberg 2015-07-21 825 u64 min_page_size = 1ull << MLX5_CAP_GEN(mdev, log_pg_sz); 85c7c01499a9eb Daniel Jurgens 2018-01-04 826 bool raw_support = !mlx5_core_mp_enabled(mdev); 402ca53644ff19 Bodong Wang 2016-06-17 827 struct mlx5_ib_query_device_resp resp = {}; 402ca53644ff19 Bodong Wang 2016-06-17 828 size_t resp_len; 402ca53644ff19 Bodong Wang 2016-06-17 829 u64 max_tso; e126ba97dba9ed Eli Cohen 2013-07-07 830 402ca53644ff19 Bodong Wang 2016-06-17 831 resp_len = sizeof(resp.comp_mask) + sizeof(resp.response_length); 4835709176e8cc Leon Romanovsky 2020-01-15 832 if (uhw_outlen && uhw_outlen < resp_len) 402ca53644ff19 Bodong Wang 2016-06-17 833 return -EINVAL; 6f26b2ac699cc5 Erez Alfasi 2019-10-02 834 402ca53644ff19 Bodong Wang 2016-06-17 835 resp.response_length = resp_len; 402ca53644ff19 Bodong Wang 2016-06-17 836 4835709176e8cc Leon Romanovsky 2020-01-15 837 if (uhw && uhw->inlen && !ib_is_udata_cleared(uhw, 0, uhw->inlen)) 2528e33e680921 Matan Barak 2015-06-11 838 return -EINVAL; 2528e33e680921 Matan Barak 2015-06-11 839 1b5daf11b01512 Majd Dibbiny 2015-06-04 840 memset(props, 0, sizeof(*props)); 1b5daf11b01512 Majd Dibbiny 2015-06-04 841 err = mlx5_query_system_image_guid(ibdev, 1b5daf11b01512 Majd Dibbiny 2015-06-04 842 &props->sys_image_guid); 1b5daf11b01512 Majd Dibbiny 2015-06-04 843 if (err) 1b5daf11b01512 Majd Dibbiny 2015-06-04 844 return err; e126ba97dba9ed Eli Cohen 2013-07-07 845 1b5daf11b01512 Majd Dibbiny 2015-06-04 846 err = mlx5_query_max_pkeys(ibdev, &props->max_pkeys); e126ba97dba9ed Eli Cohen 2013-07-07 847 if (err) 1b5daf11b01512 Majd Dibbiny 2015-06-04 848 return err; e126ba97dba9ed Eli Cohen 2013-07-07 849 1b5daf11b01512 Majd Dibbiny 2015-06-04 850 err = mlx5_query_vendor_id(ibdev, &props->vendor_id); 1b5daf11b01512 Majd Dibbiny 2015-06-04 851 if (err) 1b5daf11b01512 Majd Dibbiny 2015-06-04 852 return err; e126ba97dba9ed Eli Cohen 2013-07-07 853 9603b61de1eee9 Jack Morgenstein 2014-07-28 854 props->fw_ver = ((u64)fw_rev_maj(dev->mdev) << 32) | 9603b61de1eee9 Jack Morgenstein 2014-07-28 855 (fw_rev_min(dev->mdev) << 16) | 9603b61de1eee9 Jack Morgenstein 2014-07-28 856 fw_rev_sub(dev->mdev); e126ba97dba9ed Eli Cohen 2013-07-07 857 props->device_cap_flags = IB_DEVICE_CHANGE_PHY_PORT | e126ba97dba9ed Eli Cohen 2013-07-07 858 IB_DEVICE_PORT_ACTIVE_EVENT | e126ba97dba9ed Eli Cohen 2013-07-07 859 IB_DEVICE_SYS_IMAGE_GUID | 1a4c3a3dc5fdee Eli Cohen 2014-02-06 860 IB_DEVICE_RC_RNR_NAK_GEN; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 861 938fe83c8dcbbf Saeed Mahameed 2015-05-28 862 if (MLX5_CAP_GEN(mdev, pkv)) e126ba97dba9ed Eli Cohen 2013-07-07 863 props->device_cap_flags |= IB_DEVICE_BAD_PKEY_CNTR; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 864 if (MLX5_CAP_GEN(mdev, qkv)) e126ba97dba9ed Eli Cohen 2013-07-07 865 props->device_cap_flags |= IB_DEVICE_BAD_QKEY_CNTR; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 866 if (MLX5_CAP_GEN(mdev, apm)) e126ba97dba9ed Eli Cohen 2013-07-07 867 props->device_cap_flags |= IB_DEVICE_AUTO_PATH_MIG; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 868 if (MLX5_CAP_GEN(mdev, xrc)) e126ba97dba9ed Eli Cohen 2013-07-07 869 props->device_cap_flags |= IB_DEVICE_XRC; d2370e0a573e5c Matan Barak 2016-02-29 870 if (MLX5_CAP_GEN(mdev, imaicl)) { d2370e0a573e5c Matan Barak 2016-02-29 871 props->device_cap_flags |= IB_DEVICE_MEM_WINDOW | d2370e0a573e5c Matan Barak 2016-02-29 872 IB_DEVICE_MEM_WINDOW_TYPE_2B; d2370e0a573e5c Matan Barak 2016-02-29 873 props->max_mw = 1 << MLX5_CAP_GEN(mdev, log_max_mkey); b005d316471374 Sagi Grimberg 2016-02-29 874 /* We support 'Gappy' memory registration too */ b005d316471374 Sagi Grimberg 2016-02-29 875 props->device_cap_flags |= IB_DEVICE_SG_GAPS_REG; d2370e0a573e5c Matan Barak 2016-02-29 876 } e126ba97dba9ed Eli Cohen 2013-07-07 877 props->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 878 if (MLX5_CAP_GEN(mdev, sho)) { c0a6cbb9cbccff Israel Rukshin 2019-06-11 879 props->device_cap_flags |= IB_DEVICE_INTEGRITY_HANDOVER; 2dea909444c294 Sagi Grimberg 2014-02-23 880 /* At this stage no support for signature handover */ 2dea909444c294 Sagi Grimberg 2014-02-23 881 props->sig_prot_cap = IB_PROT_T10DIF_TYPE_1 | 2dea909444c294 Sagi Grimberg 2014-02-23 882 IB_PROT_T10DIF_TYPE_2 | 2dea909444c294 Sagi Grimberg 2014-02-23 883 IB_PROT_T10DIF_TYPE_3; 2dea909444c294 Sagi Grimberg 2014-02-23 884 props->sig_guard_cap = IB_GUARD_T10DIF_CRC | 2dea909444c294 Sagi Grimberg 2014-02-23 885 IB_GUARD_T10DIF_CSUM; 2dea909444c294 Sagi Grimberg 2014-02-23 886 } 938fe83c8dcbbf Saeed Mahameed 2015-05-28 887 if (MLX5_CAP_GEN(mdev, block_lb_mc)) f360d88a2efddf Eli Cohen 2014-04-02 888 props->device_cap_flags |= IB_DEVICE_BLOCK_MULTICAST_LOOPBACK; e126ba97dba9ed Eli Cohen 2013-07-07 889 85c7c01499a9eb Daniel Jurgens 2018-01-04 890 if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) && raw_support) { e8161334403ed3 Noa Osherovich 2017-01-18 891 if (MLX5_CAP_ETH(mdev, csum_cap)) { e8161334403ed3 Noa Osherovich 2017-01-18 892 /* Legacy bit to support old userspace libraries */ 88115fe7a0e45a Bodong Wang 2015-12-18 893 props->device_cap_flags |= IB_DEVICE_RAW_IP_CSUM; e8161334403ed3 Noa Osherovich 2017-01-18 894 props->raw_packet_caps |= IB_RAW_PACKET_CAP_IP_CSUM; e8161334403ed3 Noa Osherovich 2017-01-18 895 } e8161334403ed3 Noa Osherovich 2017-01-18 896 e8161334403ed3 Noa Osherovich 2017-01-18 897 if (MLX5_CAP_ETH(dev->mdev, vlan_cap)) e8161334403ed3 Noa Osherovich 2017-01-18 898 props->raw_packet_caps |= e8161334403ed3 Noa Osherovich 2017-01-18 899 IB_RAW_PACKET_CAP_CVLAN_STRIPPING; 88115fe7a0e45a Bodong Wang 2015-12-18 900 4835709176e8cc Leon Romanovsky 2020-01-15 901 if (field_avail(typeof(resp), tso_caps, uhw_outlen)) { 402ca53644ff19 Bodong Wang 2016-06-17 902 max_tso = MLX5_CAP_ETH(mdev, max_lso_cap); 402ca53644ff19 Bodong Wang 2016-06-17 903 if (max_tso) { 402ca53644ff19 Bodong Wang 2016-06-17 904 resp.tso_caps.max_tso = 1 << max_tso; 402ca53644ff19 Bodong Wang 2016-06-17 905 resp.tso_caps.supported_qpts |= 402ca53644ff19 Bodong Wang 2016-06-17 906 1 << IB_QPT_RAW_PACKET; 402ca53644ff19 Bodong Wang 2016-06-17 907 resp.response_length += sizeof(resp.tso_caps); 402ca53644ff19 Bodong Wang 2016-06-17 908 } 402ca53644ff19 Bodong Wang 2016-06-17 909 } 31f69a82b456e3 Yishai Hadas 2016-08-28 910 4835709176e8cc Leon Romanovsky 2020-01-15 911 if (field_avail(typeof(resp), rss_caps, uhw_outlen)) { 31f69a82b456e3 Yishai Hadas 2016-08-28 912 resp.rss_caps.rx_hash_function = 31f69a82b456e3 Yishai Hadas 2016-08-28 913 MLX5_RX_HASH_FUNC_TOEPLITZ; 31f69a82b456e3 Yishai Hadas 2016-08-28 914 resp.rss_caps.rx_hash_fields_mask = 31f69a82b456e3 Yishai Hadas 2016-08-28 915 MLX5_RX_HASH_SRC_IPV4 | 31f69a82b456e3 Yishai Hadas 2016-08-28 916 MLX5_RX_HASH_DST_IPV4 | 31f69a82b456e3 Yishai Hadas 2016-08-28 917 MLX5_RX_HASH_SRC_IPV6 | 31f69a82b456e3 Yishai Hadas 2016-08-28 918 MLX5_RX_HASH_DST_IPV6 | 31f69a82b456e3 Yishai Hadas 2016-08-28 919 MLX5_RX_HASH_SRC_PORT_TCP | 31f69a82b456e3 Yishai Hadas 2016-08-28 920 MLX5_RX_HASH_DST_PORT_TCP | 31f69a82b456e3 Yishai Hadas 2016-08-28 921 MLX5_RX_HASH_SRC_PORT_UDP | 4e2b53a5cb5a82 Maor Gottlieb 2017-12-24 922 MLX5_RX_HASH_DST_PORT_UDP | 4e2b53a5cb5a82 Maor Gottlieb 2017-12-24 923 MLX5_RX_HASH_INNER; 2d93fc856959bb Matan Barak 2018-03-28 924 if (mlx5_accel_ipsec_device_caps(dev->mdev) & 2d93fc856959bb Matan Barak 2018-03-28 925 MLX5_ACCEL_IPSEC_CAP_DEVICE) 2d93fc856959bb Matan Barak 2018-03-28 926 resp.rss_caps.rx_hash_fields_mask |= 2d93fc856959bb Matan Barak 2018-03-28 927 MLX5_RX_HASH_IPSEC_SPI; 31f69a82b456e3 Yishai Hadas 2016-08-28 928 resp.response_length += sizeof(resp.rss_caps); 31f69a82b456e3 Yishai Hadas 2016-08-28 929 } 31f69a82b456e3 Yishai Hadas 2016-08-28 930 } else { 4835709176e8cc Leon Romanovsky 2020-01-15 931 if (field_avail(typeof(resp), tso_caps, uhw_outlen)) 31f69a82b456e3 Yishai Hadas 2016-08-28 932 resp.response_length += sizeof(resp.tso_caps); 4835709176e8cc Leon Romanovsky 2020-01-15 933 if (field_avail(typeof(resp), rss_caps, uhw_outlen)) 31f69a82b456e3 Yishai Hadas 2016-08-28 934 resp.response_length += sizeof(resp.rss_caps); 402ca53644ff19 Bodong Wang 2016-06-17 935 } 402ca53644ff19 Bodong Wang 2016-06-17 936 f031396531fe2b Erez Shitrit 2016-02-21 937 if (MLX5_CAP_GEN(mdev, ipoib_basic_offloads)) { f031396531fe2b Erez Shitrit 2016-02-21 938 props->device_cap_flags |= IB_DEVICE_UD_IP_CSUM; f031396531fe2b Erez Shitrit 2016-02-21 939 props->device_cap_flags |= IB_DEVICE_UD_TSO; f031396531fe2b Erez Shitrit 2016-02-21 940 } f031396531fe2b Erez Shitrit 2016-02-21 941 03404e8ae652e0 Maor Gottlieb 2017-05-30 942 if (MLX5_CAP_GEN(dev->mdev, rq_delay_drop) && 85c7c01499a9eb Daniel Jurgens 2018-01-04 943 MLX5_CAP_GEN(dev->mdev, general_notification_event) && 85c7c01499a9eb Daniel Jurgens 2018-01-04 944 raw_support) 03404e8ae652e0 Maor Gottlieb 2017-05-30 945 props->raw_packet_caps |= IB_RAW_PACKET_CAP_DELAY_DROP; 03404e8ae652e0 Maor Gottlieb 2017-05-30 946 1d54f89094e2d2 Yishai Hadas 2017-06-08 947 if (MLX5_CAP_GEN(mdev, ipoib_enhanced_offloads) && 1d54f89094e2d2 Yishai Hadas 2017-06-08 948 MLX5_CAP_IPOIB_ENHANCED(mdev, csum_cap)) 1d54f89094e2d2 Yishai Hadas 2017-06-08 949 props->device_cap_flags |= IB_DEVICE_UD_IP_CSUM; 1d54f89094e2d2 Yishai Hadas 2017-06-08 950 cff5a0f3a3cda0 Majd Dibbiny 2016-04-17 951 if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) && 85c7c01499a9eb Daniel Jurgens 2018-01-04 952 MLX5_CAP_ETH(dev->mdev, scatter_fcs) && 85c7c01499a9eb Daniel Jurgens 2018-01-04 953 raw_support) { e8161334403ed3 Noa Osherovich 2017-01-18 954 /* Legacy bit to support old userspace libraries */ cff5a0f3a3cda0 Majd Dibbiny 2016-04-17 955 props->device_cap_flags |= IB_DEVICE_RAW_SCATTER_FCS; e8161334403ed3 Noa Osherovich 2017-01-18 956 props->raw_packet_caps |= IB_RAW_PACKET_CAP_SCATTER_FCS; e8161334403ed3 Noa Osherovich 2017-01-18 957 } cff5a0f3a3cda0 Majd Dibbiny 2016-04-17 958 24da00164f7a9c Ariel Levkovich 2018-04-05 959 if (MLX5_CAP_DEV_MEM(mdev, memic)) { 24da00164f7a9c Ariel Levkovich 2018-04-05 960 props->max_dm_size = 24da00164f7a9c Ariel Levkovich 2018-04-05 961 MLX5_CAP_DEV_MEM(mdev, max_memic_size); 24da00164f7a9c Ariel Levkovich 2018-04-05 962 } 24da00164f7a9c Ariel Levkovich 2018-04-05 963 da6d6ba3c6f085 Maor Gottlieb 2016-06-04 964 if (mlx5_get_flow_namespace(dev->mdev, MLX5_FLOW_NAMESPACE_BYPASS)) da6d6ba3c6f085 Maor Gottlieb 2016-06-04 965 props->device_cap_flags |= IB_DEVICE_MANAGED_FLOW_STEERING; da6d6ba3c6f085 Maor Gottlieb 2016-06-04 966 b1383aa6412177 Noa Osherovich 2017-10-29 967 if (MLX5_CAP_GEN(mdev, end_pad)) b1383aa6412177 Noa Osherovich 2017-10-29 968 props->device_cap_flags |= IB_DEVICE_PCI_WRITE_END_PADDING; b1383aa6412177 Noa Osherovich 2017-10-29 969 1b5daf11b01512 Majd Dibbiny 2015-06-04 970 props->vendor_part_id = mdev->pdev->device; 1b5daf11b01512 Majd Dibbiny 2015-06-04 971 props->hw_ver = mdev->pdev->revision; e126ba97dba9ed Eli Cohen 2013-07-07 972 e126ba97dba9ed Eli Cohen 2013-07-07 973 props->max_mr_size = ~0ull; e0238a6a369eaa Sagi Grimberg 2015-07-21 974 props->page_size_cap = ~(min_page_size - 1); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 975 props->max_qp = 1 << MLX5_CAP_GEN(mdev, log_max_qp); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 976 props->max_qp_wr = 1 << MLX5_CAP_GEN(mdev, log_max_qp_sz); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 977 max_rq_sg = MLX5_CAP_GEN(mdev, max_wqe_sz_rq) / 938fe83c8dcbbf Saeed Mahameed 2015-05-28 978 sizeof(struct mlx5_wqe_data_seg); 288c01b746aab4 Eli Cohen 2016-10-27 979 max_sq_desc = min_t(int, MLX5_CAP_GEN(mdev, max_wqe_sz_sq), 512); 288c01b746aab4 Eli Cohen 2016-10-27 980 max_sq_sg = (max_sq_desc - sizeof(struct mlx5_wqe_ctrl_seg) - 288c01b746aab4 Eli Cohen 2016-10-27 981 sizeof(struct mlx5_wqe_raddr_seg)) / e126ba97dba9ed Eli Cohen 2013-07-07 982 sizeof(struct mlx5_wqe_data_seg); 33023fb85a42b5 Steve Wise 2018-06-18 983 props->max_send_sge = max_sq_sg; 33023fb85a42b5 Steve Wise 2018-06-18 984 props->max_recv_sge = max_rq_sg; 986ef95ecdd3eb Sagi Grimberg 2016-03-31 985 props->max_sge_rd = MLX5_MAX_SGE_RD; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 986 props->max_cq = 1 << MLX5_CAP_GEN(mdev, log_max_cq); 9f17768611ebf8 Leon Romanovsky 2016-01-14 987 props->max_cqe = (1 << MLX5_CAP_GEN(mdev, log_max_cq_sz)) - 1; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 988 props->max_mr = 1 << MLX5_CAP_GEN(mdev, log_max_mkey); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 989 props->max_pd = 1 << MLX5_CAP_GEN(mdev, log_max_pd); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 990 props->max_qp_rd_atom = 1 << MLX5_CAP_GEN(mdev, log_max_ra_req_qp); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 991 props->max_qp_init_rd_atom = 1 << MLX5_CAP_GEN(mdev, log_max_ra_res_qp); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 992 props->max_srq = 1 << MLX5_CAP_GEN(mdev, log_max_srq); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 993 props->max_srq_wr = (1 << MLX5_CAP_GEN(mdev, log_max_srq_sz)) - 1; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 994 props->local_ca_ack_delay = MLX5_CAP_GEN(mdev, local_ca_ack_delay); e126ba97dba9ed Eli Cohen 2013-07-07 995 props->max_res_rd_atom = props->max_qp_rd_atom * props->max_qp; e126ba97dba9ed Eli Cohen 2013-07-07 996 props->max_srq_sge = max_rq_sg - 1; 911f4331bc87f4 Sagi Grimberg 2016-03-03 997 props->max_fast_reg_page_list_len = 911f4331bc87f4 Sagi Grimberg 2016-03-03 998 1 << MLX5_CAP_GEN(mdev, log_max_klm_list_size); 62e3c379d4d713 Max Gurtovoy 2019-06-11 999 props->max_pi_fast_reg_page_list_len = 62e3c379d4d713 Max Gurtovoy 2019-06-11 1000 props->max_fast_reg_page_list_len / 2; 366090564b8124 Yamin Friedman 2019-10-07 1001 props->max_sgl_rd = 366090564b8124 Yamin Friedman 2019-10-07 1002 MLX5_CAP_GEN(mdev, max_sgl_for_optimized_performance); 776a3906b69296 Moni Shoua 2018-01-02 1003 get_atomic_caps_qp(dev, props); 81bea28ffdaad0 Eli Cohen 2013-09-11 1004 props->masked_atomic_cap = IB_ATOMIC_NONE; 938fe83c8dcbbf Saeed Mahameed 2015-05-28 1005 props->max_mcast_grp = 1 << MLX5_CAP_GEN(mdev, log_max_mcg); 938fe83c8dcbbf Saeed Mahameed 2015-05-28 1006 props->max_mcast_qp_attach = MLX5_CAP_GEN(mdev, max_qp_mcg); e126ba97dba9ed Eli Cohen 2013-07-07 1007 props->max_total_mcast_qp_attach = props->max_mcast_qp_attach * e126ba97dba9ed Eli Cohen 2013-07-07 1008 props->max_mcast_grp; e126ba97dba9ed Eli Cohen 2013-07-07 1009 props->max_map_per_fmr = INT_MAX; /* no limit in ConnectIB */ 86695a6582e3b1 Maor Gottlieb 2016-10-27 1010 props->max_ah = INT_MAX; 7c60bcbb68122b Matan Barak 2015-12-15 1011 props->hca_core_clock = MLX5_CAP_GEN(mdev, device_frequency_khz); 7c60bcbb68122b Matan Barak 2015-12-15 1012 props->timestamp_mask = 0x7FFFFFFFFFFFFFFFULL; e126ba97dba9ed Eli Cohen 2013-07-07 1013 e502b8b011294c Leon Romanovsky 2019-01-08 1014 if (IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING)) { 008157528ac565 Moni Shoua 2019-08-15 1015 if (dev->odp_caps.general_caps & IB_ODP_SUPPORT) 8cdd312cfed706 Haggai Eran 2014-12-11 1016 props->device_cap_flags |= IB_DEVICE_ON_DEMAND_PAGING; 8cdd312cfed706 Haggai Eran 2014-12-11 1017 props->odp_caps = dev->odp_caps; e502b8b011294c Leon Romanovsky 2019-01-08 1018 } 8cdd312cfed706 Haggai Eran 2014-12-11 1019 051f263098a90d Leon Romanovsky 2015-12-20 1020 if (MLX5_CAP_GEN(mdev, cd)) 051f263098a90d Leon Romanovsky 2015-12-20 1021 props->device_cap_flags |= IB_DEVICE_CROSS_CHANNEL; 051f263098a90d Leon Romanovsky 2015-12-20 1022 e53a9d26cf8056 Parav Pandit 2019-10-28 1023 if (mlx5_core_is_vf(mdev)) eff901d30e6ceb Eli Cohen 2016-03-11 1024 props->device_cap_flags |= IB_DEVICE_VIRTUAL_FUNCTION; eff901d30e6ceb Eli Cohen 2016-03-11 1025 31f69a82b456e3 Yishai Hadas 2016-08-28 1026 if (mlx5_ib_port_link_layer(ibdev, 1) == 85c7c01499a9eb Daniel Jurgens 2018-01-04 1027 IB_LINK_LAYER_ETHERNET && raw_support) { 31f69a82b456e3 Yishai Hadas 2016-08-28 1028 props->rss_caps.max_rwq_indirection_tables = 31f69a82b456e3 Yishai Hadas 2016-08-28 1029 1 << MLX5_CAP_GEN(dev->mdev, log_max_rqt); 31f69a82b456e3 Yishai Hadas 2016-08-28 1030 props->rss_caps.max_rwq_indirection_table_size = 31f69a82b456e3 Yishai Hadas 2016-08-28 1031 1 << MLX5_CAP_GEN(dev->mdev, log_max_rqt_size); 31f69a82b456e3 Yishai Hadas 2016-08-28 1032 props->rss_caps.supported_qpts = 1 << IB_QPT_RAW_PACKET; 31f69a82b456e3 Yishai Hadas 2016-08-28 1033 props->max_wq_type_rq = 31f69a82b456e3 Yishai Hadas 2016-08-28 1034 1 << MLX5_CAP_GEN(dev->mdev, log_max_rq); 31f69a82b456e3 Yishai Hadas 2016-08-28 1035 } 31f69a82b456e3 Yishai Hadas 2016-08-28 1036 eb761894351d03 Artemy Kovalyov 2017-08-17 1037 if (MLX5_CAP_GEN(mdev, tag_matching)) { 78b1beb0998437 Leon Romanovsky 2017-09-24 1038 props->tm_caps.max_num_tags = eb761894351d03 Artemy Kovalyov 2017-08-17 1039 (1 << MLX5_CAP_GEN(mdev, log_tag_matching_list_sz)) - 1; 78b1beb0998437 Leon Romanovsky 2017-09-24 1040 props->tm_caps.max_ops = eb761894351d03 Artemy Kovalyov 2017-08-17 1041 1 << MLX5_CAP_GEN(mdev, log_max_qp_sz); 78b1beb0998437 Leon Romanovsky 2017-09-24 1042 props->tm_caps.max_sge = MLX5_TM_MAX_SGE; eb761894351d03 Artemy Kovalyov 2017-08-17 1043 } eb761894351d03 Artemy Kovalyov 2017-08-17 1044 89705e92700170 Danit Goldberg 2019-07-05 1045 if (MLX5_CAP_GEN(mdev, tag_matching) && 89705e92700170 Danit Goldberg 2019-07-05 1046 MLX5_CAP_GEN(mdev, rndv_offload_rc)) { 89705e92700170 Danit Goldberg 2019-07-05 1047 props->tm_caps.flags = IB_TM_CAP_RNDV_RC; 89705e92700170 Danit Goldberg 2019-07-05 1048 props->tm_caps.max_rndv_hdr_size = MLX5_TM_MAX_RNDV_MSG_SIZE; 89705e92700170 Danit Goldberg 2019-07-05 1049 } 89705e92700170 Danit Goldberg 2019-07-05 1050 87ab3f524efd17 Yonatan Cohen 2017-11-13 1051 if (MLX5_CAP_GEN(dev->mdev, cq_moderation)) { 87ab3f524efd17 Yonatan Cohen 2017-11-13 1052 props->cq_caps.max_cq_moderation_count = 87ab3f524efd17 Yonatan Cohen 2017-11-13 1053 MLX5_MAX_CQ_COUNT; 87ab3f524efd17 Yonatan Cohen 2017-11-13 1054 props->cq_caps.max_cq_moderation_period = 87ab3f524efd17 Yonatan Cohen 2017-11-13 1055 MLX5_MAX_CQ_PERIOD; 87ab3f524efd17 Yonatan Cohen 2017-11-13 1056 } 87ab3f524efd17 Yonatan Cohen 2017-11-13 1057 4835709176e8cc Leon Romanovsky 2020-01-15 1058 if (field_avail(typeof(resp), cqe_comp_caps, uhw_outlen)) { 572f46bf947c3e Yonatan Cohen 2018-05-27 1059 resp.response_length += sizeof(resp.cqe_comp_caps); 572f46bf947c3e Yonatan Cohen 2018-05-27 1060 572f46bf947c3e Yonatan Cohen 2018-05-27 1061 if (MLX5_CAP_GEN(dev->mdev, cqe_compression)) { 7e43a2a5bae39f Bodong Wang 2016-10-31 1062 resp.cqe_comp_caps.max_num = 572f46bf947c3e Yonatan Cohen 2018-05-27 1063 MLX5_CAP_GEN(dev->mdev, 572f46bf947c3e Yonatan Cohen 2018-05-27 1064 cqe_compression_max_num); 572f46bf947c3e Yonatan Cohen 2018-05-27 1065 7e43a2a5bae39f Bodong Wang 2016-10-31 1066 resp.cqe_comp_caps.supported_format = 7e43a2a5bae39f Bodong Wang 2016-10-31 1067 MLX5_IB_CQE_RES_FORMAT_HASH | 7e43a2a5bae39f Bodong Wang 2016-10-31 1068 MLX5_IB_CQE_RES_FORMAT_CSUM; 6f1006a43869ff Yonatan Cohen 2018-05-27 1069 6f1006a43869ff Yonatan Cohen 2018-05-27 1070 if (MLX5_CAP_GEN(dev->mdev, mini_cqe_resp_stride_index)) 6f1006a43869ff Yonatan Cohen 2018-05-27 1071 resp.cqe_comp_caps.supported_format |= 6f1006a43869ff Yonatan Cohen 2018-05-27 1072 MLX5_IB_CQE_RES_FORMAT_CSUM_STRIDX; 572f46bf947c3e Yonatan Cohen 2018-05-27 1073 } 7e43a2a5bae39f Bodong Wang 2016-10-31 1074 } 7e43a2a5bae39f Bodong Wang 2016-10-31 1075 4835709176e8cc Leon Romanovsky 2020-01-15 1076 if (field_avail(typeof(resp), packet_pacing_caps, uhw_outlen) && 85c7c01499a9eb Daniel Jurgens 2018-01-04 1077 raw_support) { d949167d68b304 Bodong Wang 2016-12-01 1078 if (MLX5_CAP_QOS(mdev, packet_pacing) && d949167d68b304 Bodong Wang 2016-12-01 1079 MLX5_CAP_GEN(mdev, qos)) { d949167d68b304 Bodong Wang 2016-12-01 1080 resp.packet_pacing_caps.qp_rate_limit_max = d949167d68b304 Bodong Wang 2016-12-01 1081 MLX5_CAP_QOS(mdev, packet_pacing_max_rate); d949167d68b304 Bodong Wang 2016-12-01 1082 resp.packet_pacing_caps.qp_rate_limit_min = d949167d68b304 Bodong Wang 2016-12-01 1083 MLX5_CAP_QOS(mdev, packet_pacing_min_rate); d949167d68b304 Bodong Wang 2016-12-01 1084 resp.packet_pacing_caps.supported_qpts |= d949167d68b304 Bodong Wang 2016-12-01 1085 1 << IB_QPT_RAW_PACKET; 61147f391a8b3b Bodong Wang 2018-03-19 1086 if (MLX5_CAP_QOS(mdev, packet_pacing_burst_bound) && 61147f391a8b3b Bodong Wang 2018-03-19 1087 MLX5_CAP_QOS(mdev, packet_pacing_typical_size)) 61147f391a8b3b Bodong Wang 2018-03-19 1088 resp.packet_pacing_caps.cap_flags |= 61147f391a8b3b Bodong Wang 2018-03-19 1089 MLX5_IB_PP_SUPPORT_BURST; d949167d68b304 Bodong Wang 2016-12-01 1090 } d949167d68b304 Bodong Wang 2016-12-01 1091 resp.response_length += sizeof(resp.packet_pacing_caps); d949167d68b304 Bodong Wang 2016-12-01 1092 } d949167d68b304 Bodong Wang 2016-12-01 1093 9f885201f27407 Leon Romanovsky 2017-01-02 1094 if (field_avail(typeof(resp), mlx5_ib_support_multi_pkt_send_wqes, 4835709176e8cc Leon Romanovsky 2020-01-15 1095 uhw_outlen)) { 795b609c8b59f8 Bodong Wang 2017-08-17 1096 if (MLX5_CAP_ETH(mdev, multi_pkt_send_wqe)) 9f885201f27407 Leon Romanovsky 2017-01-02 1097 resp.mlx5_ib_support_multi_pkt_send_wqes = 795b609c8b59f8 Bodong Wang 2017-08-17 1098 MLX5_IB_ALLOW_MPW; 050da902adde8f Bodong Wang 2017-08-17 1099 050da902adde8f Bodong Wang 2017-08-17 1100 if (MLX5_CAP_ETH(mdev, enhanced_multi_pkt_send_wqe)) 050da902adde8f Bodong Wang 2017-08-17 1101 resp.mlx5_ib_support_multi_pkt_send_wqes |= 050da902adde8f Bodong Wang 2017-08-17 1102 MLX5_IB_SUPPORT_EMPW; 050da902adde8f Bodong Wang 2017-08-17 1103 9f885201f27407 Leon Romanovsky 2017-01-02 1104 resp.response_length += 9f885201f27407 Leon Romanovsky 2017-01-02 1105 sizeof(resp.mlx5_ib_support_multi_pkt_send_wqes); 9f885201f27407 Leon Romanovsky 2017-01-02 1106 } 9f885201f27407 Leon Romanovsky 2017-01-02 1107 4835709176e8cc Leon Romanovsky 2020-01-15 1108 if (field_avail(typeof(resp), flags, uhw_outlen)) { de57f2ad06d5bf Guy Levi 2017-10-19 1109 resp.response_length += sizeof(resp.flags); 7a0c8f4244e9ec Guy Levi 2017-10-19 1110 de57f2ad06d5bf Guy Levi 2017-10-19 1111 if (MLX5_CAP_GEN(mdev, cqe_compression_128)) de57f2ad06d5bf Guy Levi 2017-10-19 1112 resp.flags |= de57f2ad06d5bf Guy Levi 2017-10-19 1113 MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP; 7a0c8f4244e9ec Guy Levi 2017-10-19 1114 7a0c8f4244e9ec Guy Levi 2017-10-19 1115 if (MLX5_CAP_GEN(mdev, cqe_128_always)) 7a0c8f4244e9ec Guy Levi 2017-10-19 1116 resp.flags |= MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD; 7e11b911b520de Danit Goldberg 2018-11-30 1117 if (MLX5_CAP_GEN(mdev, qp_packet_based)) 7e11b911b520de Danit Goldberg 2018-11-30 1118 resp.flags |= 7e11b911b520de Danit Goldberg 2018-11-30 1119 MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE; 7249c8ea227a58 Guy Levi 2019-04-10 1120 7249c8ea227a58 Guy Levi 2019-04-10 1121 resp.flags |= MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT; de57f2ad06d5bf Guy Levi 2017-10-19 1122 } 9f885201f27407 Leon Romanovsky 2017-01-02 1123 4835709176e8cc Leon Romanovsky 2020-01-15 1124 if (field_avail(typeof(resp), sw_parsing_caps, uhw_outlen)) { 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1125 resp.response_length += sizeof(resp.sw_parsing_caps); 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1126 if (MLX5_CAP_ETH(mdev, swp)) { 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1127 resp.sw_parsing_caps.sw_parsing_offloads |= 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1128 MLX5_IB_SW_PARSING; 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1129 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1130 if (MLX5_CAP_ETH(mdev, swp_csum)) 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1131 resp.sw_parsing_caps.sw_parsing_offloads |= 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1132 MLX5_IB_SW_PARSING_CSUM; 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1133 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1134 if (MLX5_CAP_ETH(mdev, swp_lso)) 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1135 resp.sw_parsing_caps.sw_parsing_offloads |= 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1136 MLX5_IB_SW_PARSING_LSO; 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1137 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1138 if (resp.sw_parsing_caps.sw_parsing_offloads) 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1139 resp.sw_parsing_caps.supported_qpts = 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1140 BIT(IB_QPT_RAW_PACKET); 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1141 } 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1142 } 96dc3fc5f1d66b Noa Osherovich 2017-08-17 1143 4835709176e8cc Leon Romanovsky 2020-01-15 1144 if (field_avail(typeof(resp), striding_rq_caps, uhw_outlen) && 85c7c01499a9eb Daniel Jurgens 2018-01-04 1145 raw_support) { b4f34597a5ce14 Noa Osherovich 2017-10-17 1146 resp.response_length += sizeof(resp.striding_rq_caps); b4f34597a5ce14 Noa Osherovich 2017-10-17 1147 if (MLX5_CAP_GEN(mdev, striding_rq)) { b4f34597a5ce14 Noa Osherovich 2017-10-17 1148 resp.striding_rq_caps.min_single_stride_log_num_of_bytes = b4f34597a5ce14 Noa Osherovich 2017-10-17 1149 MLX5_MIN_SINGLE_STRIDE_LOG_NUM_BYTES; b4f34597a5ce14 Noa Osherovich 2017-10-17 1150 resp.striding_rq_caps.max_single_stride_log_num_of_bytes = b4f34597a5ce14 Noa Osherovich 2017-10-17 1151 MLX5_MAX_SINGLE_STRIDE_LOG_NUM_BYTES; c16339b69c0d58 Mark Zhang 2019-11-15 1152 if (MLX5_CAP_GEN(dev->mdev, ext_stride_num_range)) c16339b69c0d58 Mark Zhang 2019-11-15 1153 resp.striding_rq_caps c16339b69c0d58 Mark Zhang 2019-11-15 1154 .min_single_wqe_log_num_of_strides = c16339b69c0d58 Mark Zhang 2019-11-15 1155 MLX5_EXT_MIN_SINGLE_WQE_LOG_NUM_STRIDES; c16339b69c0d58 Mark Zhang 2019-11-15 1156 else c16339b69c0d58 Mark Zhang 2019-11-15 1157 resp.striding_rq_caps c16339b69c0d58 Mark Zhang 2019-11-15 1158 .min_single_wqe_log_num_of_strides = b4f34597a5ce14 Noa Osherovich 2017-10-17 1159 MLX5_MIN_SINGLE_WQE_LOG_NUM_STRIDES; b4f34597a5ce14 Noa Osherovich 2017-10-17 1160 resp.striding_rq_caps.max_single_wqe_log_num_of_strides = b4f34597a5ce14 Noa Osherovich 2017-10-17 1161 MLX5_MAX_SINGLE_WQE_LOG_NUM_STRIDES; b4f34597a5ce14 Noa Osherovich 2017-10-17 1162 resp.striding_rq_caps.supported_qpts = b4f34597a5ce14 Noa Osherovich 2017-10-17 1163 BIT(IB_QPT_RAW_PACKET); b4f34597a5ce14 Noa Osherovich 2017-10-17 1164 } b4f34597a5ce14 Noa Osherovich 2017-10-17 1165 } b4f34597a5ce14 Noa Osherovich 2017-10-17 1166 4835709176e8cc Leon Romanovsky 2020-01-15 1167 if (field_avail(typeof(resp), tunnel_offloads_caps, uhw_outlen)) { f95ef6cbae61fa Maor Gottlieb 2017-10-19 1168 resp.response_length += sizeof(resp.tunnel_offloads_caps); f95ef6cbae61fa Maor Gottlieb 2017-10-19 1169 if (MLX5_CAP_ETH(mdev, tunnel_stateless_vxlan)) f95ef6cbae61fa Maor Gottlieb 2017-10-19 1170 resp.tunnel_offloads_caps |= f95ef6cbae61fa Maor Gottlieb 2017-10-19 1171 MLX5_IB_TUNNELED_OFFLOADS_VXLAN; f95ef6cbae61fa Maor Gottlieb 2017-10-19 1172 if (MLX5_CAP_ETH(mdev, tunnel_stateless_geneve_rx)) f95ef6cbae61fa Maor Gottlieb 2017-10-19 1173 resp.tunnel_offloads_caps |= f95ef6cbae61fa Maor Gottlieb 2017-10-19 1174 MLX5_IB_TUNNELED_OFFLOADS_GENEVE; f95ef6cbae61fa Maor Gottlieb 2017-10-19 1175 if (MLX5_CAP_ETH(mdev, tunnel_stateless_gre)) f95ef6cbae61fa Maor Gottlieb 2017-10-19 1176 resp.tunnel_offloads_caps |= f95ef6cbae61fa Maor Gottlieb 2017-10-19 1177 MLX5_IB_TUNNELED_OFFLOADS_GRE; e818e255a58d64 Ariel Levkovich 2018-05-13 1178 if (MLX5_CAP_GEN(mdev, flex_parser_protocols) & e818e255a58d64 Ariel Levkovich 2018-05-13 1179 MLX5_FLEX_PROTO_CW_MPLS_GRE) e818e255a58d64 Ariel Levkovich 2018-05-13 1180 resp.tunnel_offloads_caps |= e818e255a58d64 Ariel Levkovich 2018-05-13 1181 MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE; e818e255a58d64 Ariel Levkovich 2018-05-13 1182 if (MLX5_CAP_GEN(mdev, flex_parser_protocols) & e818e255a58d64 Ariel Levkovich 2018-05-13 1183 MLX5_FLEX_PROTO_CW_MPLS_UDP) e818e255a58d64 Ariel Levkovich 2018-05-13 1184 resp.tunnel_offloads_caps |= e818e255a58d64 Ariel Levkovich 2018-05-13 1185 MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP; f95ef6cbae61fa Maor Gottlieb 2017-10-19 1186 } f95ef6cbae61fa Maor Gottlieb 2017-10-19 1187 4835709176e8cc Leon Romanovsky 2020-01-15 1188 if (uhw_outlen) { 402ca53644ff19 Bodong Wang 2016-06-17 @1189 err = ib_copy_to_udata(uhw, &resp, resp.response_length); 402ca53644ff19 Bodong Wang 2016-06-17 1190 402ca53644ff19 Bodong Wang 2016-06-17 1191 if (err) 402ca53644ff19 Bodong Wang 2016-06-17 1192 return err; 402ca53644ff19 Bodong Wang 2016-06-17 1193 } 402ca53644ff19 Bodong Wang 2016-06-17 1194 1b5daf11b01512 Majd Dibbiny 2015-06-04 1195 return 0; e126ba97dba9ed Eli Cohen 2013-07-07 1196 } e126ba97dba9ed Eli Cohen 2013-07-07 1197 :::::: The code at line 1189 was first introduced by commit :::::: 402ca53644ff1928f2ea68cce6fe41b2b5f38510 IB/mlx5: Report mlx5 TSO capabilities when querying device :::::: TO: Bodong Wang <bod...@mellanox.com> :::::: CC: Doug Ledford <dledf...@redhat.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org