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

Commit 62f1d0e6 authored by Andres Salomon's avatar Andres Salomon Committed by Jeff Garzik
Browse files

[libata] sata_mv: errata check buglet fix



Fix a buglet; the errata check below this code is assuming the value in
the sstatus variable is what was pulled out of the SCR_STATUS register.
However, the status checks in the timeout loop clobber everything
but the first 4 bits of sstatus, so the errata checks are invalid.

This patch changes it to not clobber SStatus.

Signed-off-by: default avatarAndres Salomon <dilinger@debian.org>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent c336923b
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1961,8 +1961,7 @@ static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
	timeout = jiffies + msecs_to_jiffies(200);
	do {
		sata_scr_read(ap, SCR_STATUS, &sstatus);
		sstatus &= 0x3;
		if ((sstatus == 3) || (sstatus == 0))
		if (((sstatus & 0x3) == 3) || ((sstatus & 0x3) == 0))
			break;

		__msleep(1, can_sleep);