| 1433 | } |
| 1434 | |
| 1435 | static void krping_run_server(struct krping_cb *cb) |
| 1436 | { |
| 1437 | struct ib_recv_wr *bad_wr; |
| 1438 | int ret; |
| 1439 | |
| 1440 | ret = krping_bind_server(cb); |
| 1441 | if (ret) |
| 1442 | return; |
| 1443 | |
| 1444 | ret = krping_setup_qp(cb, cb->child_cm_id); |
| 1445 | if (ret) { |
| 1446 | printk(KERN_ERR PFX "setup_qp failed: %d\n", ret); |
| 1447 | goto err0; |
| 1448 | } |
| 1449 | |
| 1450 | ret = krping_setup_buffers(cb); |
| 1451 | if (ret) { |
| 1452 | printk(KERN_ERR PFX "krping_setup_buffers failed: %d\n", ret); |
| 1453 | goto err1; |
| 1454 | } |
| 1455 | |
| 1456 | ret = ib_post_recv(cb->qp, &cb->rq_wr, &bad_wr); |
| 1457 | if (ret) { |
| 1458 | printk(KERN_ERR PFX "ib_post_recv failed: %d\n", ret); |
| 1459 | goto err2; |
| 1460 | } |
| 1461 | |
| 1462 | ret = krping_accept(cb); |
| 1463 | if (ret) { |
| 1464 | printk(KERN_ERR PFX "connect error %d\n", ret); |
| 1465 | goto err2; |
| 1466 | } |
| 1467 | |
| 1468 | if (cb->wlat) |
| 1469 | krping_wlat_test_server(cb); |
| 1470 | else if (cb->rlat) |
| 1471 | krping_rlat_test_server(cb); |
| 1472 | else if (cb->bw) |
| 1473 | krping_bw_test_server(cb); |
| 1474 | else |
| 1475 | krping_test_server(cb); |
| 1476 | rdma_disconnect(cb->child_cm_id); |
| 1477 | err2: |
| 1478 | krping_free_buffers(cb); |
| 1479 | err1: |
| 1480 | krping_free_qp(cb); |
| 1481 | err0: |
| 1482 | rdma_destroy_id(cb->child_cm_id); |
| 1483 | } |
| 1484 | |
| 1485 | static void krping_test_client(struct krping_cb *cb) |
| 1486 | { |
no test coverage detected