]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: lpfc: Fix debugfs root inode "lpfc" not getting deleted on driver unload.
authorJames Smart <jsmart2021@gmail.com>
Mon, 15 May 2017 22:20:48 +0000 (15:20 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 17 May 2017 01:23:13 +0000 (21:23 -0400)
commit02f9ec7c4089d1e7a0ac88886fa26af9868d6236
treef097be6baccc37a91aa9cbd26a7f8f1ca0cf5284
parent588f046131e121ea4219823ad87cde4d21b493b2
scsi: lpfc: Fix debugfs root inode "lpfc" not getting deleted on driver unload.

When unloading and reloading the driver, the driver fails to recreate
the lpfc root inode in the debugfs tree.

The driver is incorrectly removing the lpfc root inode in
lpfc_debugfs_terminate in the first driver instance that unloads and
then sets the lpfc_debugfs_root global parameter to NULL.  When the
final driver instance unloads, the debugfs calls quietly ignore the
remove on a NULL pointer.  The bug is that the debugfs_remove call
returns void so the driver doesn't know to correctly set the global
parameter to NULL.

Base the debugfs_remove of the lpfc_debugfs_root parameter on
lpfc_debugfs_hba_count because this parameter tracks the fnX instance
tracked per driver instance.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_debugfs.c