idr_preload (9) - Linux Man Pages
idr_preload: preload for idr_alloc
idr_preload - preload for idr_alloc
- allocation mask to use for preloading
Preload per-cpu layer buffer for idr_alloc. Can only be used from process context and each idr_preload invocation should be matched with idr_preload_end. Note that preemption is disabled while preloaded.
The first idr_alloc in the preloaded section can be treated as if it were invoked with gfp_mask used for preloading. This allows using more permissive allocation masks for idrs protected by spinlocks.
For example, if idr_alloc below fails, the failure can be treated as if idr_alloc were called with GFP_KERNEL rather than GFP_NOWAIT.
id = idr_alloc(idr, ptr, start, end, GFP_NOWAIT);