device_links_force_bind(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to device_links_force_bind(9) from the Kernel API Manual β€” it's giving β€œprep the device for a force bind” and honestly it's lowkey iconic 🫢✨

🌸 NAME 🌸

device_links_force_bind β€” prepares device to be force bound. Periodt. πŸ’…

πŸ¦‹ SYNOPSIS πŸ¦‹

void device_links_force_bind (struct device *dev );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” Consumer device. That's the one we're prepping, bestie.

✨ DESCRIPTION ✨

So device_bind_driver force binds a device to a driver without calling any driver probe functions. Meaning the consumer really isn't going to wait for any supplier before it's bound to the driver β€” no cap. But we still want the device link states to be sensible when this happens. Vibe check: links should not be messy.

In preparation for device_bind_driver, this function goes through each supplier device links and checks if the supplier is bound. If it is, then the device link status is set to CONSUMER_PROBE. Otherwise, the device link is dropped. Links without the DL_FLAG_MANAGED flag set are ignored. That's the whole tea β˜•.

🌈 SEE ALSO 🌈

Kernel file: ./drivers/base/core.c β€” and here's the whole linked-up crew, in order:

__fwnode_link_add(9), __fwnode_link_del(9), __fwnode_link_cycle(9),
fwnode_links_purge_suppliers(9), fwnode_links_purge_consumers(9),
fwnode_links_purge(9), __fwnode_links_move_consumers(9),
__fw_devlink_pickup_dangling_consumers(9), fw_devlink_refresh_fwnode(9),
device_is_dependent(9), device_pm_move_to_tail(9),
device_link_wait_removal(9), device_link_add(9), device_link_del(9),
device_link_remove(9), device_links_check_suppliers(9),
__device_links_queue_sync_state(9), device_links_flush_sync_list(9),
device_links_driver_bound(9), __device_links_no_driver(9),
device_links_no_driver(9), device_links_driver_cleanup(9),
device_links_busy(9), device_links_unbind_consumers(9),
device_links_purge(9), wait_for_init_devices_probe(9),
fwnode_is_ancestor_of(9), fwnode_get_next_parent_dev(9),
__fw_devlink_relax_cycles(9), fw_devlink_create_devlink(9),
__fw_devlink_link_to_consumers(9), __fw_devlink_link_to_suppliers(9),
dev_driver_string(9), device_release(9), devm_device_add_group(9),
devices_kset_move_before(9), devices_kset_move_after(9),
devices_kset_move_last(9), device_create_file(9), device_remove_file(9),
device_remove_file_self(9), device_create_bin_file(9),
device_remove_bin_file(9), device_initialize(9),
kobject_has_children(9), dev_set_name(9), device_add(9),
device_register(9), get_device(9), put_device(9), device_del(9),
device_unregister(9), device_get_devnode(9), device_for_each_child(9),
device_for_each_child_reverse(9), device_for_each_child_reverse_from(9),
device_find_child(9), device_offline(9), device_online(9),
__root_device_register(9), root_device_unregister(9), device_create(9),
device_create_with_groups(9), device_destroy(9), device_rename(9),
device_move(9), device_change_owner(9), device_shutdown(9),
dev_err_probe(9), dev_warn_probe(9), set_primary_fwnode(9),
set_secondary_fwnode(9), device_remove_of_node(9),
device_add_of_node(9), device_set_of_node_from_dev(9),
get_dev_from_fwnode(9)

Bestie, that's the whole page πŸ’– sign-off time: source/version is ./drivers/base, date is October 2026, and device_links_force_bind(9) has officially left the chat β€” mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from