• Fabio Estevam's avatar
    regmap: Call regmap_debugfs_exit() prior to _init() · 530792ef
    Fabio Estevam authored
    Since commit cffa4b21 ("regmap: debugfs: Fix a memory leak when
    calling regmap_attach_dev"), the following debugfs error is seen
    on i.MX boards:
    
    debugfs: Directory 'dummy-iomuxc-gpr@20e0000' with parent 'regmap' already present!
    
    In the attempt to fix the memory leak, the above commit added a NULL check
    for map->debugfs_name. For the first debufs entry, map->debugfs_name is NULL
    and then the new name is allocated via kasprintf().
    
    For the second debugfs entry, map->debugfs_name() is no longer NULL, so
    it will keep using the old entry name and the duplicate name error is seen.
    
    Quoting Mark Brown:
    
    "That means that if the device gets freed we'll end up with the old debugfs
    file hanging around pointing at nothing.
    ...
    To be more explicit this means we need a call to regmap_debugfs_exit()
    which will clean up all the existing debugfs stuff before we loose
    references to it."
    
    Call regmap_debugfs_exit() prior to regmap_debugfs_init() to fix
    the problem.
    
    Tested on i.MX6Q and i.MX6SX boards.
    
    Fixes: cffa4b21 ("regmap: debugfs: Fix a memory leak when calling regmap_attach_dev")
    Suggested-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarFabio Estevam <festevam@denx.de>
    Link: https://lore.kernel.org/r/20220107163307.335404-1-festevam@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    530792ef
regmap.c 80.1 KB