debugfs_create_u32_array() memory leaks

From: Jakub Kicinski
Date: Fri Jun 19 2020 - 19:17:43 EST


Hi!

I'm trying to use debugfs_create_u32_array() in drivers/net/netdevsim
and it causes memory leaks:

unreferenced object 0xffff8880546642a0 (size 16):
comm "test_udp_tuns.s", pid 2146, jiffies 4294928368 (age 3772.435s)
hex dump (first 16 bytes):
84 52 6a 4d 80 88 ff ff 04 00 00 00 f3 78 7e 89 .RjM.........x~.
backtrace:
[<000000006962a447>] debugfs_create_u32_array+0x3f/0x90

I can see that debugfs_create_u32_array() allocates a structure at
create time that ends up assigned to inode->i_private, but I don't
see it freed anywhere.

Am I missing something? I'm pretty sure files get removed, cause the
driver calls debugfs_remove_recursive() and no other file types leaks.