request_firmware_nowait(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

NAME πŸ’–

request_firmware_nowait β€” it's literally the asynchronous version of request_firmware, no cap ✨

hey bestie, welcome to the Kernel API Manual page for request_firmware_nowait(9) β€” the async firmware-request icon πŸ’…


SYNOPSIS 🌸

int request_firmware_nowait (struct module *module , bool uevent , const char *name , struct device *device , gfp_t gfp , void *context , void (*cont)(const struct firmware *fw, void *context) );

ARGUMENTS πŸŽ€

  • module β€” the module requesting the firmware. main character energy, honestly πŸ‘‘
  • uevent β€” sends uevent to copy the firmware image if this flag is non-zero; else the firmware copy must be done manually. no shortcuts, bestie 😌
  • name β€” name of firmware file πŸ¦‹
  • device β€” device for which firmware is being loaded πŸ’«
  • gfp β€” allocation flags, aka the allocation vibe check 🧚
  • context β€” will be passed over to cont, and fw may be NULL if firmware request fails. yes, NULL is valid here, don't panic 😭
  • cont β€” function will be called asynchronously when the firmware request is over. it's giving callback energy fr fr πŸ’…

DESCRIPTION πŸ¦‹

okay so, the caller must hold the reference count of device. that part is not optional, bestie β€” hold it 🫢

Asynchronous variant of request_firmware for user contexts:

  • sleep for as small periods as possible since it may increase kernel boot time of built-in device drivers requesting firmware in their ->probe methods, if gfp is GFP_KERNEL. like, keep those sleeps tiny, okay? ⭐
  • can't sleep at all if gfp is GFP_ATOMIC. literally none. periodt πŸ’€

SEE ALSO πŸ’œ

Kernel file ./drivers/base/firmware_loader/main.c β€” go off, source file. then the whole squad:

okay that's the whole page, bestie 🫢 this one's source/version is ./drivers/base/firmware_loader, and it's dated October 2026 β€” bye, slay βœ¨πŸ’…

πŸ“¦ where this page comes from