__lpfc_mbuf_free(9)
π
__lpfc_mbuf_free β NAME β¨
Okay so bestie, welcome to the Kernel API Manual π β this one's about __lpfc_mbuf_free, which is literally the function that frees an mbuf from the lpfc_mbuf_pool PCI pool (and yes, it's the locked one, iykyk π).
πΈ SYNOPSIS πΈ
void __lpfc_mbuf_free (struct lpfc_hba * phba , void *virt , dma_addr_t dma );
π ARGUMENTS π
phbaβ the HBA that owns the pool we're returning stuff to, like it's the one holding the receipts π§Ύvirtβ the mbuf you wanna free, the actual star of the show βdmaβ the DMA-mapped address of thelpfc_mbuf_poolthat's getting freed π¦
π₯ DESCRIPTION π₯
So here's the vibe check: this function takes an mbuf from lpfc_mbuf_pool and returns it to the lpfc_mbuf_safety_pool β but only if it's below its max_count π
. If it's not below max_count? Then it just frees the mbuf instead, periodt. Two paths, one function, no cap. π
π«Ά NOTES π«Ά
Bestie. Listen. π This must be called withphba->hbalockheld, so that access tolpfc_mbuf_safety_poolis synchronized. Do not skip this, fr fr β the lock is the whole point. π
π RETURN π
None. That's it. Nothing comes back. It's giving "I did my job and left" energy π.
π SEE ALSO π
Kernel file ./drivers/scsi/lpfc/lpfc_mem.c β¨ plus the whole friend group:
lpfc_mem_alloc(9)lpfc_mem_free(9)lpfc_mem_free_all(9)lpfc_mbuf_alloc(9)lpfc_mbuf_free(9)lpfc_nvmet_buf_alloc(9)lpfc_nvmet_buf_free(9)lpfc_els_hbq_alloc(9)lpfc_els_hbq_free(9)lpfc_sli4_rb_alloc(9)lpfc_sli4_rb_free(9)lpfc_sli4_nvmet_alloc(9)lpfc_sli4_nvmet_free(9)lpfc_in_buf_free(9)lpfc_rq_buf_free(9)
And that's the whole page, bestie β mwah π This cutie lives in ./drivers/scsi/lpfc, dated October 2026, and it's filed under __lpfc_mbuf_free(9) in case you ever need to find it again πβ¨π¦
π¦ 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