• Yuan Can's avatar
    i2c: npcm7xx: Fix error handling in npcm_i2c_init() · 145900cf
    Yuan Can authored
    A problem about i2c-npcm7xx create debugfs failed is triggered with the
    following log given:
    
     [  173.827310] debugfs: Directory 'npcm_i2c' with parent '/' already present!
    
    The reason is that npcm_i2c_init() returns platform_driver_register()
    directly without checking its return value, if platform_driver_register()
    failed, it returns without destroy the newly created debugfs, resulting
    the debugfs of npcm_i2c can never be created later.
    
     npcm_i2c_init()
       debugfs_create_dir() # create debugfs directory
       platform_driver_register()
         driver_register()
           bus_add_driver()
             priv = kzalloc(...) # OOM happened
       # return without destroy debugfs directory
    
    Fix by removing debugfs when platform_driver_register() returns error.
    
    Fixes: 56a1485b ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
    Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
    Reviewed-by: default avatarTali Perry <tali.perry@nuvoton.com>
    Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
    145900cf
i2c-npcm7xx.c 62.5 KB