• Yuan Can's avatar
    NTB: amd: Fix error handling in amd_ntb_pci_driver_init() · 98af0a33
    Yuan Can authored
    A problem about ntb_hw_amd create debugfs failed is triggered with the
    following log given:
    
     [  618.431232] AMD(R) PCI-E Non-Transparent Bridge Driver 1.0
     [  618.433284] debugfs: Directory 'ntb_hw_amd' with parent '/' already present!
    
    The reason is that amd_ntb_pci_driver_init() returns pci_register_driver()
    directly without checking its return value, if pci_register_driver()
    failed, it returns without destroy the newly created debugfs, resulting
    the debugfs of ntb_hw_amd can never be created later.
    
     amd_ntb_pci_driver_init()
       debugfs_create_dir() # create debugfs directory
       pci_register_driver()
         driver_register()
           bus_add_driver()
             priv = kzalloc(...) # OOM happened
       # return without destroy debugfs directory
    
    Fix by removing debugfs when pci_register_driver() returns error.
    
    Fixes: a1b36958 ("NTB: Add support for AMD PCI-Express Non-Transparent Bridge")
    Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
    Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
    98af0a33
ntb_hw_amd.c 32.9 KB