From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> Not entirely clear why the preload was there with no locking. Maybe at one time there was a lock, and the preload was never removed? Signed-off-by: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> --- kernel/irq/timings.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/irq/timings.c b/kernel/irq/timings.c index e0923fa4927a..e9f16527656c 100644 --- a/kernel/irq/timings.c +++ b/kernel/irq/timings.c @@ -356,9 +356,7 @@ int irq_timings_alloc(int irq) if (!s) return -ENOMEM; - idr_preload(GFP_KERNEL); - id = idr_alloc(&irqt_stats, s, irq, irq + 1, GFP_NOWAIT); - idr_preload_end(); + id = idr_alloc(&irqt_stats, s, irq, irq + 1, GFP_KERNEL); if (id < 0) { free_percpu(s); -- 2.15.0