MCPcopy Create free account
hub / github.com/F-Stack/f-stack / krping_bind_server

Function krping_bind_server

freebsd/contrib/rdma/krping/krping.c:1400–1433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1398}
1399
1400static int krping_bind_server(struct krping_cb *cb)
1401{
1402 struct sockaddr_storage sin;
1403 int ret;
1404
1405
1406 fill_sockaddr(&sin, cb);
1407
1408 ret = rdma_bind_addr(cb->cm_id, (struct sockaddr *)&sin);
1409 if (ret) {
1410 printk(KERN_ERR PFX "rdma_bind_addr error %d\n", ret);
1411 return ret;
1412 }
1413 DEBUG_LOG("rdma_bind_addr successful\n");
1414
1415 DEBUG_LOG("rdma_listen\n");
1416 ret = rdma_listen(cb->cm_id, 3);
1417 if (ret) {
1418 printk(KERN_ERR PFX "rdma_listen failed: %d\n", ret);
1419 return ret;
1420 }
1421
1422 wait_event_interruptible(cb->sem, cb->state >= CONNECT_REQUEST);
1423 if (cb->state != CONNECT_REQUEST) {
1424 printk(KERN_ERR PFX "wait for CONNECT_REQUEST state %d\n",
1425 cb->state);
1426 return -1;
1427 }
1428
1429 if (!reg_supported(cb->child_cm_id->device))
1430 return -EINVAL;
1431
1432 return 0;
1433}
1434
1435static void krping_run_server(struct krping_cb *cb)
1436{

Callers 1

krping_run_serverFunction · 0.85

Calls 2

fill_sockaddrFunction · 0.85
reg_supportedFunction · 0.85

Tested by

no test coverage detected