• Yuan Can's avatar
    serial: 8250_bcm7271: Fix error handling in brcmuart_init() · 6a3ff858
    Yuan Can authored
    A problem about 8250_bcm7271 create debugfs failed is triggered with the
    following log given:
    
     [  324.516635] debugfs: Directory 'bcm7271-uart' with parent '/' already present!
    
    The reason is that brcmuart_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 8250_bcm7271 can never be created later.
    
     brcmuart_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: 41a46948 ("serial: 8250: Add new 8250-core based Broadcom STB driver")
    Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
    Link: https://lore.kernel.org/r/20221109072110.117291-2-yuancan@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6a3ff858
8250_bcm7271.c 33.3 KB