device_del(9)
π device_del(9) β from the Kernel API Manual, bestie β¨
okay so real talk: this one's called device_del and it's the "break up with your device, but politely" function. It lives in the Kernel API Manual section 9 (that's the kernel-internals girlies π), and honestly? she's a short page but she's important, so let's get into it.
πΈ NAME πΈ
device_del β delete device from system. that's it. that's the whole vibe. bye-bye device π¦
β¨ SYNOPSIS β¨
void device_del (struct device *dev );
like, no return value, no drama. she just goes in, does the thing, and leaves π
π ARGUMENTS π
devβ the device. yes, that's the entire description in the original and honestly it's giving "minimalist icon". this is thestruct device *you're evicting from the system.
π DESCRIPTION π
okay so this is the first part of the device unregistration sequence β think of it as part one of a two-part finale, not the whole goodbye. here's what she actually does:
- removes the device from the lists we control from here (our lists, our rules π )
- has it removed from the other driver model subsystems it was added to back in
device_add - and removes it from the kobject hierarchy
so basically: three different friend groups, one very thorough "we need to talk" text π
π NOTE π
this should be called manually _iff_ device_add was also called manually.
read that twice bestie. iff β if and only if. you only do the manual breakup if you did the manual setup. symmetry, periodt. β¨
π₯ SEE ALSO π₯
okay this list is long and I'm not skipping a single one, because every one of these is somebody's hyperfixation. all of these live in the kernel file ./drivers/base/core.c:
__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_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, that's the whole friend group π go read them, they're all icons.
π«Ά and that's the page!! huge shoutout to the ./drivers/base directory for hosting all this, and this lil guy is dated October 2026 β future energy fr fr. stay slay, unregister responsibly, and always remember the iff πβ¨π
π¦ 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