Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77c01976 authored by Alan Stern's avatar Alan Stern Committed by James Bottomley
Browse files

[SCSI] fix /proc memory leak in the SCSI core



The SCSI core calls scsi_proc_hostdir_add() from within
scsi_host_alloc(), but the corresponding scsi_proc_hostdir_rm()
routine is called from within scsi_remove_host().  As a result, if a
host is allocated and then deallocated without ever being registered,
the host's directory in /proc is leaked.

This patch (as1181b) fixes this bug in the SCSI core by moving
scsi_proc_hostdir_rm() into scsi_host_dev_release().

Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 058bb82c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -176,7 +176,6 @@ void scsi_remove_host(struct Scsi_Host *shost)
	transport_unregister_device(&shost->shost_gendev);
	device_unregister(&shost->shost_dev);
	device_del(&shost->shost_gendev);
	scsi_proc_hostdir_rm(shost->hostt);
}
EXPORT_SYMBOL(scsi_remove_host);

@@ -270,6 +269,8 @@ static void scsi_host_dev_release(struct device *dev)
	struct Scsi_Host *shost = dev_to_shost(dev);
	struct device *parent = dev->parent;

	scsi_proc_hostdir_rm(shost->hostt);

	if (shost->ehandler)
		kthread_stop(shost->ehandler);
	if (shost->work_q)