]> 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)
commit87ee9991cce170d21ad6ca125b76129f9f1c3ade
treef097be6baccc37a91aa9cbd26a7f8f1ca0cf5284
parentd79629fd6b3ec94ce91f1379ee4af2d641c097e8
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