driver_defe...robe_trigger(9)
π driver_deferred_probe_trigger β from the Kernel API Manual, bestie β¨
okay so real talk, this one is from the Kernel API Manual, and it's called driver_deferred_probe_trigger. yes the title got truncated with ... in the header, that's just how the page prints, don't come for me π«Ά
πΈ NAME πΈ
driver_deferred_probe_trigger β the function that kicks off re-probing of all your deferred devices π like literally the "go go go" button
β¨ SYNOPSIS β¨
void driver_deferred_probe_trigger (void );
π ARGUMENTS π
voidβ no arguments. that's it. nothing. zero. empty set. she takes no notes, she takes no input π
π¦ DESCRIPTION π¦
okay so here's the tea β β this function moves all devices from the pending list over to the active list, and then it schedules the deferred probe workqueue to actually go process them. it's giving "everybody up, we're doing this now" energy β¨
the rule of thumb: you should call it anytime a driver is successfully bound to a device. like, probe worked?? slay, ring the bell, tell the deferred squad π
β οΈ but bestie, hear me out, because there's a race condition in multi-threaded probe and it's not cute π
here's the situation: when more than one device is probing at the same time, it's totally possible for one probe to complete successfully while another one is about to defer. and if that second one depends on the first one? yeah. it gets put on the pending list after the trigger event already happened, and it just... sits there. stuck. forever. perish π
so to deal with that, there's an atomic called deferred_trigger_count π and its whole job is to figure out whether a successful trigger happened while a driver was mid-probe. so the logic is:
- if the trigger count changes in the midst of a probe β deferred processing should be triggered again π
no cap, that's the whole safety net. keep an eye on the count or your device is gonna be waiting in the queue like an unread text π
π SEE ALSO π
- Kernel file
./drivers/base/dd.cπ that's where the lore lives device_block_probing(9)device_unblock_probing(9)device_set_deferred_probe_reason(9)driver_deferred_probe_check_state(9)deferred_probe_initcall(9)device_is_bound(9)device_bind_driver(9)driver_probe_done(9)wait_for_device_probe(9)driver_probe_device(9)device_attach(9)device_driver_attach(9)driver_attach(9)device_release_driver(9)device_driver_detach(9)driver_detach(9)
okay that's the whole page, you ate that π and for the cute lil sign-off: this one lives over in ./drivers/base, it's dated October 2026, and the page itself is driver_defe...robe_trigger(9) β yes the truncation is part of the aesthetic, mwah πβ¨
π¦ 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