lpfc_bsg_dma_page_alloc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– lpfc_bsg_dma_page_alloc(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual ✨ β€” yes, the actual manual, and today's main character is a little function that literally just hands you memory. no cap, it's a whole vibe.


🌸 NAME 🌸

lpfc_bsg_dma_page_alloc β€” allocate a bsg mbox page sized dma buffer πŸŽ€

like, that's it. that's the job. she allocates, she returns, she slays.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct lpfc_dmabuf * lpfc_bsg_dma_page_alloc (struct lpfc_hba *phba );

copy it exactly, don't @ me about the spacing πŸ’…


πŸ’œ ARGUMENTS πŸ’œ

  • phba β€” pointer to the HBA context object 🫢. yes queen, you gotta give her the context. that's the whole price of admission.

✨ DESCRIPTION ✨

okay so here's the tea β˜• β€” this function allocates a BSG_MBOX_SIZE (4KB) page size dma buffer, and then it returns the pointer to the buffer. that's the entire plot. no twists, no drama, just a 4KB page of dma memory and a pointer to it πŸ’€

four kilobytes. iconic size, honestly. not too big, not too small, exactly right πŸ“


🌈 SEE ALSO 🌈

first up, the source of truth, the mothership, the kernel file:

Kernel file ./drivers/scsi/lpfc/lpfc_bsg.c

and now… the friend group 😭 there are so many of them, and every single one is getting their name in the group chat. not me leaving anybody out πŸ™ˆ

lpfc_bsg_send_mgmt_cmd_cmp(9), lpfc_bsg_send_mgmt_cmd(9),
lpfc_bsg_rport_els_cmp(9), lpfc_bsg_rport_els(9),
lpfc_bsg_event_free(9), lpfc_bsg_event_ref(9), lpfc_bsg_event_unref(9),
lpfc_bsg_event_new(9), diag_cmd_data_free(9),
lpfc_bsg_ct_unsol_abort(9), lpfc_bsg_hba_set_event(9),
lpfc_bsg_hba_get_event(9), lpfc_issue_ct_rsp_cmp(9),
lpfc_issue_ct_rsp(9), lpfc_bsg_send_mgmt_rsp(9),
lpfc_bsg_diag_mode_enter(9), lpfc_bsg_diag_mode_exit(9),
lpfc_sli3_bsg_diag_loopback_mode(9),
lpfc_sli4_bsg_set_link_diag_state(9),
lpfc_sli4_bsg_set_loopback_mode(9), lpfc_sli4_diag_fcport_reg_setup(9),
lpfc_sli4_bsg_diag_loopback_mode(9), lpfc_bsg_diag_loopback_mode(9),
lpfc_sli4_bsg_diag_mode_end(9), lpfc_sli4_bsg_link_diag_test(9),
lpfcdiag_loop_self_reg(9), lpfcdiag_loop_self_unreg(9),
lpfcdiag_loop_get_xri(9), lpfc_bsg_dma_page_free(9),
lpfc_bsg_dma_page_list_free(9), diag_cmd_data_alloc(9),
lpfcdiag_sli3_loop_post_rxbufs(9), lpfc_bsg_diag_loopback_run(9),
lpfc_bsg_get_dfc_rev(9), lpfc_bsg_issue_mbox_cmpl(9),
lpfc_bsg_check_cmd_access(9), lpfc_bsg_mbox_ext_session_reset(9),
lpfc_rd_obj_emb0_handle_job(9), lpfc_bsg_issue_mbox_ext_handle_job(9),
lpfc_bsg_issue_read_mbox_ext_cmpl(9),
lpfc_bsg_issue_write_mbox_ext_cmpl(9), lpfc_bsg_sli_cfg_read_cmd_ext(9),
lpfc_bsg_sli_cfg_write_cmd_ext(9), lpfc_bsg_handle_sli_cfg_mbox(9),
lpfc_bsg_mbox_ext_abort(9), lpfc_bsg_read_ebuf_get(9),
lpfc_bsg_write_ebuf_set(9), lpfc_bsg_handle_sli_cfg_ebuf(9),
lpfc_bsg_handle_sli_cfg_ext(9), lpfc_bsg_issue_mbox(9),
lpfc_bsg_mbox_cmd(9), lpfc_check_fwlog_support(9),
lpfc_bsg_get_ras_config(9), lpfc_bsg_set_ras_config(9),
lpfc_bsg_get_ras_lwpd(9), lpfc_bsg_get_ras_fwlog(9),
lpfc_bsg_hst_vendor(9), lpfc_bsg_request(9), lpfc_bsg_timeout(9)

the way lpfc_bsg_dma_page_free(9) and lpfc_bsg_dma_page_list_free(9) are right there in the list… the allocation-to-free pipeline is real, iykyk πŸ”₯

side note bestie: this page gives you zero warnings, zero error codes, zero exit statuses β€” if it's not in here, don't go inventing it, ok? πŸ™

and that's the page!! mwah πŸ’‹ stay hydrated, read your manpages, and remember: 4KB of dma memory is a lifestyle. ⭐

from ./drivers/scsi/lpfc, dated October 2026, and this has been lpfc_bsg_dma_page_alloc(9) β€” periodt. πŸ‘‘πŸ’…πŸ«Ά

πŸ“¦ where this page comes from