scsi: ufs: Clean up some rpm/spm level SysFS nodes upon remove

When reloading module these two attributes aren't cleaned up properly
and they persist causing warnings when trying to load module
again. Additionally they are not recreated properly due to that.

Signed-off-by: Michał Potomski <michalx.potomski@intel.com>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Michał Potomski 2017-05-12 08:36:27 +02:00 committed by Martin K. Petersen
parent eeeb51d834
commit 463f620b12

View File

@ -7698,6 +7698,12 @@ static inline void ufshcd_add_sysfs_nodes(struct ufs_hba *hba)
ufshcd_add_spm_lvl_sysfs_nodes(hba); ufshcd_add_spm_lvl_sysfs_nodes(hba);
} }
static inline void ufshcd_remove_sysfs_nodes(struct ufs_hba *hba)
{
device_remove_file(hba->dev, &hba->rpm_lvl_attr);
device_remove_file(hba->dev, &hba->spm_lvl_attr);
}
/** /**
* ufshcd_shutdown - shutdown routine * ufshcd_shutdown - shutdown routine
* @hba: per adapter instance * @hba: per adapter instance
@ -7735,6 +7741,7 @@ EXPORT_SYMBOL(ufshcd_shutdown);
*/ */
void ufshcd_remove(struct ufs_hba *hba) void ufshcd_remove(struct ufs_hba *hba)
{ {
ufshcd_remove_sysfs_nodes(hba);
scsi_remove_host(hba->host); scsi_remove_host(hba->host);
/* disable interrupts */ /* disable interrupts */
ufshcd_disable_intr(hba, hba->intr_mask); ufshcd_disable_intr(hba, hba->intr_mask);