device_links...ck_suppliers(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to the Kernel API Manual entry for device_links...ck_suppliers(9) β€” yes, the title is doing its little abbreviation moment, but the function is device_links_check_suppliers. Let's get into it πŸ’…βœ¨

🌸 NAME 🌸

device_links_check_suppliers β€” literally checking whether the supplier drivers are present. Presence check, no cap βœ…

✨ SYNOPSIS ✨

int device_links_check_suppliers (struct device *dev );

πŸ’… ARGUMENTS πŸ’…

  • dev β€” the consumer device. This is the device whose supplier links we're checking, the main character of this little operation πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

So the vibe here is: check the links from this device to any suppliers. Walk the list of the device's links to suppliers and see if all of them are available. If not, simply return -EPROBE_DEFER β€” no dramatic exit, just that return value, periodt.

We need to guarantee that the supplier will not go away after the check has been positive here. It only can go away in __device_release_driver, and that function checks the device's links to consumers. This means we need to mark the link as "consumer probe in progress" to make the supplier removal wait for us to complete (or bad things may happen). bad things may happen is right there in the manual, bestie β€” this is not the part to skip πŸ™ˆ

Links without the DL_FLAG_MANAGED flag set are ignored. Not it, skipped, ignored, bye πŸ’€

πŸŽ€ SEE ALSO πŸŽ€

Kernel file ./drivers/base/core.c is the hangout spot, and here's the whole squad, fr fr:


okay that's the whole page, bestie πŸ’– β€” source/version is ./drivers/base, the date is October 2026, and the page tag is device_links...ck_suppliers(9). byeee πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from