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

Commit 299246f9 authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

libata: mask off DET when restoring SControl for detach



libata restores SControl on detach; however, trying to restore
non-zero DET can cause undeterministic behavior including PMP device
going offline till power cycling.  Mask off DET when restoring
SControl.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 6a87e42e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5936,7 +5936,7 @@ static void ata_port_detach(struct ata_port *ap)
	 * to us.  Restore SControl and disable all existing devices.
	 */
	__ata_port_for_each_link(link, ap) {
		sata_scr_write(link, SCR_CONTROL, link->saved_scontrol);
		sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
		ata_link_for_each_dev(dev, link)
			ata_dev_disable(dev);
	}