Skip to content
  • Daniel Baluta's avatar
    regmap: debugfs: Fix memory leak in regmap_debugfs_init · 2899872b
    Daniel Baluta authored and Mark Brown's avatar Mark Brown committed
    
    
    As detected by kmemleak running on i.MX6ULL board:
    
    nreferenced object 0xd8366600 (size 64):
      comm "swapper/0", pid 1, jiffies 4294937370 (age 933.220s)
      hex dump (first 32 bytes):
        64 75 6d 6d 79 2d 69 6f 6d 75 78 63 2d 67 70 72  dummy-iomuxc-gpr
        40 32 30 65 34 30 30 30 00 e3 f3 ab fe d1 1b dd  @20e4000........
      backtrace:
        [<b0402aec>] kasprintf+0x2c/0x54
        [<a6fbad2c>] regmap_debugfs_init+0x7c/0x31c
        [<9c8d91fa>] __regmap_init+0xb5c/0xcf4
        [<5b1c3d2a>] of_syscon_register+0x164/0x2c4
        [<596a5d80>] syscon_node_to_regmap+0x64/0x90
        [<49bd597b>] imx6ul_init_machine+0x34/0xa0
        [<250a4dac>] customize_machine+0x1c/0x30
        [<2d19fdaf>] do_one_initcall+0x7c/0x398
        [<e6084469>] kernel_init_freeable+0x328/0x448
        [<168c9101>] kernel_init+0x8/0x114
        [<913268aa>] ret_from_fork+0x14/0x20
        [<ce7b131a>] 0x0
    
    Root cause is that map->debugfs_name is allocated using kasprintf
    and then the pointer is lost by assigning it other memory address.
    
    Reported-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    2899872b