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

Commit c3cf30a9 authored by Tejun Heo's avatar Tejun Heo
Browse files

[PATCH] libata: fix ata_port_detach() for old EH ports



ata_prot_detach() did nothing for old EH ports and thus SCSI hosts
associated with those ports are left dangling after they are detached
leaving stale devices and causing oops eventually.  Make
ata_port_detach() remove SCSI hosts for old EH ports.

Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
parent f1d39b29
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5558,7 +5558,7 @@ void ata_port_detach(struct ata_port *ap)
	int i;

	if (!ap->ops->error_handler)
		return;
		goto skip_eh;

	/* tell EH we're leaving & flush EH */
	spin_lock_irqsave(ap->lock, flags);
@@ -5594,6 +5594,7 @@ void ata_port_detach(struct ata_port *ap)
	cancel_delayed_work(&ap->hotplug_task);
	flush_workqueue(ata_aux_wq);

 skip_eh:
	/* remove the associated SCSI host */
	scsi_remove_host(ap->host);
}