Subject: debugobjects-rt.patch From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:41:35 +0200 Signed-off-by: Thomas Gleixner --- lib/debugobjects.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: linux-3.4/lib/debugobjects.c =================================================================== --- linux-3.4.orig/lib/debugobjects.c +++ linux-3.4/lib/debugobjects.c @@ -310,7 +310,10 @@ __debug_object_init(void *addr, struct d struct debug_obj *obj; unsigned long flags; - fill_pool(); +#ifdef CONFIG_PREEMPT_RT_FULL + if (preempt_count() == 0 && !irqs_disabled()) +#endif + fill_pool(); db = get_bucket((unsigned long) addr); @@ -1053,9 +1056,9 @@ static int __init debug_objects_replace_ } } + local_irq_enable(); printk(KERN_DEBUG "ODEBUG: %d of %d active objects replaced\n", cnt, obj_pool_used); - local_irq_enable(); return 0; free: hlist_for_each_entry_safe(obj, node, tmp, &objects, node) {