| 1921 | } |
| 1922 | |
| 1923 | static void krping_run_client(struct krping_cb *cb) |
| 1924 | { |
| 1925 | struct ib_recv_wr *bad_wr; |
| 1926 | int ret; |
| 1927 | |
| 1928 | /* set type of service, if any */ |
| 1929 | if (cb->tos != 0) |
| 1930 | rdma_set_service_type(cb->cm_id, cb->tos); |
| 1931 | |
| 1932 | ret = krping_bind_client(cb); |
| 1933 | if (ret) |
| 1934 | return; |
| 1935 | |
| 1936 | ret = krping_setup_qp(cb, cb->cm_id); |
| 1937 | if (ret) { |
| 1938 | printk(KERN_ERR PFX "setup_qp failed: %d\n", ret); |
| 1939 | return; |
| 1940 | } |
| 1941 | |
| 1942 | ret = krping_setup_buffers(cb); |
| 1943 | if (ret) { |
| 1944 | printk(KERN_ERR PFX "krping_setup_buffers failed: %d\n", ret); |
| 1945 | goto err1; |
| 1946 | } |
| 1947 | |
| 1948 | ret = ib_post_recv(cb->qp, &cb->rq_wr, &bad_wr); |
| 1949 | if (ret) { |
| 1950 | printk(KERN_ERR PFX "ib_post_recv failed: %d\n", ret); |
| 1951 | goto err2; |
| 1952 | } |
| 1953 | |
| 1954 | ret = krping_connect_client(cb); |
| 1955 | if (ret) { |
| 1956 | printk(KERN_ERR PFX "connect error %d\n", ret); |
| 1957 | goto err2; |
| 1958 | } |
| 1959 | |
| 1960 | if (cb->wlat) |
| 1961 | krping_wlat_test_client(cb); |
| 1962 | else if (cb->rlat) |
| 1963 | krping_rlat_test_client(cb); |
| 1964 | else if (cb->bw) |
| 1965 | krping_bw_test_client(cb); |
| 1966 | else if (cb->frtest) |
| 1967 | krping_fr_test(cb); |
| 1968 | else |
| 1969 | krping_test_client(cb); |
| 1970 | rdma_disconnect(cb->cm_id); |
| 1971 | err2: |
| 1972 | krping_free_buffers(cb); |
| 1973 | err1: |
| 1974 | krping_free_qp(cb); |
| 1975 | } |
| 1976 | |
| 1977 | static uint16_t |
| 1978 | krping_get_ipv6_scope_id(char *name) |
no test coverage detected