diff --git a/msm/dsi/dsi_ctrl.c b/msm/dsi/dsi_ctrl.c index 94cd3d96de..ee04db9155 100644 --- a/msm/dsi/dsi_ctrl.c +++ b/msm/dsi/dsi_ctrl.c @@ -333,6 +333,8 @@ static int dsi_ctrl_debugfs_init(struct dsi_ctrl *dsi_ctrl, dsi_ctrl->debugfs_root = dir; + return rc; + error_remove_dir: debugfs_remove(dir); error: @@ -341,7 +343,10 @@ error: static int dsi_ctrl_debugfs_deinit(struct dsi_ctrl *dsi_ctrl) { - debugfs_remove(dsi_ctrl->debugfs_root); + if (dsi_ctrl->debugfs_root) { + debugfs_remove(dsi_ctrl->debugfs_root); + dsi_ctrl->debugfs_root = NULL; + } return 0; } #else diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 88f87bc68a..e4c87522ed 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -2097,7 +2097,10 @@ error: static int dsi_display_debugfs_deinit(struct dsi_display *display) { - debugfs_remove_recursive(display->root); + if (display->root) { + debugfs_remove_recursive(display->root); + display->root = NULL; + } return 0; }