The removal of the batched object freeing has caused the debug_objects_freed
to become read-only, and the reading is inside an ifdef, so gcc warns that it
is completely unused without CONFIG_DEBUG_FS:

lib/debugobjects.c:71:14: error: 'debug_objects_freed' defined but not used 

Assuming we are still interested in this number, this adds back code to
count every instance we are about to free while we still hold the spinlock.

Fixes: 636e1970fd7d ("debugobjects: Use global free list in free_object()")
Signed-off-by: Arnd Bergmann <>
 lib/debugobjects.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index faab2c4ea024..748288dba512 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -235,6 +235,9 @@ static void free_obj_work(struct work_struct *work)
                hlist_move_list(&obj_to_free, &tofree);
                obj_nr_tofree = 0;
+       hlist_for_each_entry(obj, &tofree, node)
+               debug_objects_freed++;
        raw_spin_unlock_irqrestore(&pool_lock, flags);
        hlist_for_each_entry_safe(obj, tmp, &tofree, node) {

Reply via email to