device_links...sh_sync_list(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so you're in the Kernel API Manual (that (9) after the name, that's the section, iykyk) and you've stumbled onto device_links_flush_sync_list. Welcome. Pull up a chair. πŸŽ€


🌸 NAME 🌸

device_links_flush_sync_list β€” literally just calls sync_state() on a list of devices. That's the whole personality. 🫢


✨ SYNOPSIS ✨

void device_links_flush_sync_list (struct list_head *list , struct
device *dont_lock_dev );

that's it. that's the whole vibe. πŸ¦‹


πŸ“ ARGUMENTS πŸ“

  • list β€” the list of devices you want sync_state() called on. Just a struct list_head *, nothing fancy, but it's THE list, so treat it with respect πŸ’–
  • dont_lock_dev β€” a struct device * for which the lock is already held by the caller. Yes, the name is a whole sentence. Yes, it's iconic. It's basically saying "don't lock this one, i already got it" πŸ™ˆ

πŸ”₯ DESCRIPTION πŸ”₯

So here's the tea: this function calls sync_state on all the devices that have been queued up for it. All of them. The whole squad. No cap. ✨

It's the partner-in-crime of __device_links_queue_sync_state β€” you queue 'em up with that one, you flush 'em out with this one. the way that duo works... πŸ’…

And dont_lock_dev? That's your "i already have this door open" pass. It's useful when this function gets called from a context where a device lock is already held β€” so instead of grabbing a lock you've already got (which would be a whole mess 😭), you just tell it which device to skip. main character energy, honestly. πŸ‘‘


🌈 SEE ALSO 🌈

the kernel file is ./drivers/base/core.c and it comes with a friend group, bestie. like... an entire friend group. buckle up. πŸ’€

__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_force_bind(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).

like i said. a friend group. πŸ’œ


ngl bestie, that SEE ALSO list ate and left no crumbs β€” go read a few of those before you start poking at device links in anger πŸ”₯

and that's the whole page, mwah πŸ’‹ β€” brought to you by ./drivers/base, version dated October 2026, still filed under device_links...sh_sync_list(9) (yes the name got squished, it's the kernel, we don't talk about it 😭). bye bestie, go sync some state πŸ§šβ€β™€οΈβ­

πŸ“¦ where this page comes from