ib_umem_get_cq_buf_or_va(9)
π NAME π
okay bestie, welcome to the Kernel API Manual page for ib_umem_get_cq_buf_or_va(9) β¨ She is literally here to pin a CQ buffer umem with UHW VA fallback. No cap.
π SYNOPSIS π
the signature, untouched, because we respect the code:
struct ib_umem * ib_umem_get_cq_buf_or_va (struct ib_device *device ,
const struct uverbs_attr_bundle *attrs , u64 addr , size_t size , int
access );
πΈ ARGUMENTS πΈ
deviceβ the IB device, bestie.attrsβ the uverbs attribute bundle. it may beNULL, and that's valid.addrβ the UHW user VA used when no per-command attribute matched.sizeβ okay so on the attr / legacy paths, this is the minimum required umem length validated post-pin; on the VA fallback path, it's the length to pin. yes, she does double duty, keep reading.accessβ the IB access flags.
π¦ DESCRIPTION π¦
So it's like ib_umem_get_cq_buf, but it pins addr/size when neither the UMEM attribute nor the legacy CQ buffer attributes are supplied. That's the whole glow-up β¨
Also: see ib_umem_get_attr_or_va for the note on size's dual role and the migration path for drivers that would distinguish a user-supplied length from a driver-computed minimum. iykyk.
π₯ RETURN π₯
On success you get a caller-owned umem π«Ά On error it's ERR_PTR(...), so handle it with care π
π SEE ALSO π
- Kernel file
./drivers/infiniband/core/umem.c ib_umem_find_best_pgsz(9)ib_umem_get_desc(9)ib_umem_get_attr(9)ib_umem_get_attr_or_va(9)ib_umem_get_cq_buf(9)ib_umem_release(9)
mwah π this page comes from the ./drivers/infiniband/core source, October 2026 edition β slay, go read the kernel code responsibly π
π¦ 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