svn commit: r311883 - stable/10/sys/dev/ahci

Alexander Motin mav at FreeBSD.org
Tue Jan 10 19:15:38 UTC 2017


Author: mav
Date: Tue Jan 10 19:15:37 2017
New Revision: 311883
URL: https://svnweb.freebsd.org/changeset/base/311883

Log:
  MFC r309251: Process port interrupt even is PxIS register is zero.
  
  ASMedia ASM1062 AHCI chips with some fancy firmware handling PMP inside
  seems sometimes forgeting to set bits in PxIS, causing command timeouts.
  Removal of this check fixes the issue by the theoretical cost of slightly
  higher CPU usage in some odd cases, but this is what Linux does too.

Modified:
  stable/10/sys/dev/ahci/ahci.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/ahci/ahci.c
==============================================================================
--- stable/10/sys/dev/ahci/ahci.c	Tue Jan 10 19:15:07 2017	(r311882)
+++ stable/10/sys/dev/ahci/ahci.c	Tue Jan 10 19:15:37 2017	(r311883)
@@ -1122,8 +1122,6 @@ ahci_ch_intr(void *arg)
 
 	/* Read interrupt statuses. */
 	istatus = ATA_INL(ch->r_mem, AHCI_P_IS);
-	if (istatus == 0)
-		return;
 
 	mtx_lock(&ch->mtx);
 	ahci_ch_intr_main(ch, istatus);
@@ -1140,8 +1138,6 @@ ahci_ch_intr_direct(void *arg)
 
 	/* Read interrupt statuses. */
 	istatus = ATA_INL(ch->r_mem, AHCI_P_IS);
-	if (istatus == 0)
-		return;
 
 	mtx_lock(&ch->mtx);
 	ch->batch = 1;


More information about the svn-src-all mailing list