rdma_move_ah_attr(9)
π rdma_move_ah_attr(9) β like, the Kernel API Manual, but make it make sense β¨
okay bestie, buckle up β this is rdma_move_ah_attr from the kernel API manual (section 9, the fancy "kernel internals" one π). she's short, she's sweet, and honestly she's giving "tiny function, big consequences" energy. let's go π
πΈ NAME πΈ
rdma_move_ah_attr β moves the ah_attr that source is pointing at over to destination. yes, that's it. that's the whole vibe. moving a thing from point A to point B, no cap π«Ά
β¨ SYNOPSIS β¨
void rdma_move_ah_attr (struct rdma_ah_attr *dest , struct rdma_ah_attr
*src );
like, two pointers, zero return value. she's a void girlie and she's thriving π
π¦ ARGUMENTS π¦
destβ pointer to the destination ah_attr, i.e. the place we're copying to. the docs are lowkey clear about this:destis assumed to be valid or zero'd. so please, bestie, don't hand her uninitialised garbage πsrcβ pointer to the new ah_attr. the fresh one. the incoming main character π
π₯ DESCRIPTION π₯
okay so here's what actually happens, and this part is important so like, pay attention π
rdma_move_ah_attr first releases any reference in the destination ah_attr β but only if it is valid. so if dest was already holding onto something, she cleans up after herself before moving on. responsible queen behaviour, honestly π
then β and this is the iconic bit β it transfers ownership of the internal references from src to dest, which makes src invalid in the process. not "kinda stale", not "probably fine" β invalid. src is done, she's retired, she's not coming to the group chat anymore π
and just to be super clear: no new reference of the src ah_attr is taken. zero. none. it's a move, not a copy β the references literally pack up and change addresses. so if you were planning on using src afterwards, bestie... no you weren't. π«Ά
π SEE ALSO π
- Kernel file
./drivers/infiniband/core/verbs.c __ib_alloc_pd(9)ib_dealloc_pd_user(9)rdma_copy_ah_attr(9)rdma_replace_ah_attr(9)rdma_create_ah(9)rdma_create_user_ah(9)rdma_move_grh_sgid_attr(9)rdma_destroy_ah_attr(9)ib_create_srq_user(9)ib_create_qp_user(9)ib_resolve_eth_dmac(9)ib_modify_qp_with_udata(9)ib_alloc_mr(9)ib_alloc_mr_integrity(9)ib_alloc_xrcd_user(9)ib_dealloc_xrcd_user(9)ib_create_wq(9)ib_destroy_wq_user(9)ib_map_mr_sg_pi(9)ib_map_mr_sg(9)ib_sg_to_pages(9)ib_drain_sq(9)ib_drain_rq(9)ib_drain_qp(9)rdma_alloc_hw_stats_struct(9)rdma_free_hw_stats_struct(9)
that's the whole squad, all 26 of them, no gatekeeping π§π
β οΈ friendly reminder before you go: after this call, src is invalid. do not touch. do not pass go. she has left the building. π
okay that's the page!! source dir is ./drivers/infiniband/core, dated October 2026, and the page itself is rdma_move_ah_attr(9) β mwah, love that for us πβ¨π slay, stay hydrated, and always release your references bestie ππ¦
π¦ 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