srpt_cm_req_recv(9)
π NAME π
okay so bestie, meet srpt_cm_req_recv(9) from the Kernel API Manual β¨. its whole assignment is processing the event IB_CM_REQ_RECEIVED π β that's the name, that's the job, and it's serving exactly that.
π SYNOPSIS π
int srpt_cm_req_recv (struct srpt_device *const sdev , struct ib_cm_id
*ib_cm_id , struct rdma_cm_id *rdma_cm_id , u8 port_num , __be16 pkey ,
const struct srp_login_req *req , const char *src_addr );
π«Ά ARGUMENTS π«Ά
sdevβ the HCA through which the login request was received π°οΈib_cm_idβ the IB/CM connection identifier, for the IB/CM case πͺͺrdma_cm_idβ the RDMA/CM connection identifier, for the RDMA/CM case πͺͺport_numβ the port through which theREQmessage was received πpkeyβ theP_Keyof the incoming connection πreqβ the SRP login request π¨src_addrβ the GID (IB/CM) or IP address (RDMA/CM) of the port that submitted the login request π
π DESCRIPTION π
okay so here's the ownership tea β: if this function returns zero, ownership of the cm_id is transferred to the target session. otherwise, the caller remains the owner of cm_id. periodt π
this is the main character detail, bestie: zero return = ownership of thecm_idmoves to the target session; not-zero return = the caller stays the owner ofcm_id. no cap π₯
π SEE ALSO π
the group chat of related kernel friends π¬:
- Kernel file
./drivers/infiniband/ulp/srpt/ib_srpt.c srpt_event_handler(9),srpt_srq_event(9),srpt_qp_event(9)srpt_set_ioc(9),srpt_get_class_port_info(9),srpt_get_iou(9)srpt_get_ioc(9),srpt_get_svc_entries(9),srpt_mgmt_method_get(9)srpt_mad_send_handler(9),srpt_mad_recv_handler(9)srpt_refresh_port(9),srpt_unregister_mad_agent(9),srpt_alloc_ioctx(9)srpt_free_ioctx(9),srpt_alloc_ioctx_ring(9),srpt_free_ioctx_ring(9)srpt_set_cmd_state(9),srpt_test_and_set_cmd_state(9)srpt_post_recv(9),srpt_zerolength_write(9),srpt_get_desc_tbl(9)srpt_init_ch_qp(9),srpt_ch_qp_rtr(9),srpt_ch_qp_rts(9)srpt_ch_qp_err(9),srpt_get_send_ioctx(9),srpt_abort_cmd(9)srpt_rdma_read_done(9),srpt_build_cmd_rsp(9)srpt_build_tskmgmt_rsp(9),srpt_handle_cmd(9),srpt_handle_tsk_mgmt(9)srpt_handle_new_iu(9),srpt_send_done(9),srpt_create_ch_ib(9)srpt_close_ch(9),srpt_cm_rtu_recv(9),srpt_cm_handler(9)srpt_queue_response(9),srpt_release_sport(9),srpt_lookup_port(9)srpt_add_one(9),srpt_remove_one(9),srpt_close_session(9)srpt_parse_i_port_id(9),srpt_make_tpg(9),srpt_drop_tpg(9)srpt_make_tport(9),srpt_drop_tport(9),srpt_init_module(9)
xoxo, your kernel bestie π β source/version: ./drivers/infiniband/ulp/srpt; date: October 2026; page: srpt_cm_req_recv(9). go read the source and slay π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms