device_offline(9)
π¦ device_offline β from the Kernel API Manual, section 9
okay bestie, gather round, because this one is short but it's important π
β¨ NAME β¨
device_offline β get the device all cozy and ready for its hot-removal era π
β¨ SYNOPSIS β¨
int device_offline (struct device *dev );
β¨ ARGUMENTS β¨
devβ the device you're putting offline, bestie. that's the one. that's the target π―
β¨ DESCRIPTION β¨
so here's the vibe: this runs the device bus type's .offline callback β if present β to prep the device for a subsequent hot-removal. like packing its bags before the Uber shows up π§³
and if that succeeds? the device must not be used until either (a) it gets removed, or (b) its bus type's .online callback is executed. no cap, it's benched until further notice π
β οΈ call this under device_hotplug_lock. that's not a suggestion, that's the rule, and the kernel does not do gentle reminders fr fr π
β¨ SEE ALSO β¨
the kernel file ./drivers/base/core.c and honestly the entire extended friend group π
__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_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_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)
okay that's the whole thing, you ate that π«Ά and for the credits moment: this page lives in ./drivers/base, it's dated October 2026, and it's officially device_offline(9). slay, go take a device offline responsibly πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms