Fix an off by one in the critical section clearing code. The
authorPeter Avalos <pavalos@dragonflybsd.org>
Fri, 6 Jul 2007 02:44:30 +0000 (02:44 +0000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Fri, 6 Jul 2007 02:44:30 +0000 (02:44 +0000)
code was adjusting twice for the instruction pointer indicating
the *next* instruction to execute.  The aic79xx driver had a similar
bug, but was already fixed.

Obtained-from: FreeBSD

sys/dev/disk/aic7xxx/aic7xxx.c

index 7f49d65..a5bc56d 100644 (file)
@@ -39,8 +39,8 @@
  *
  * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#155 $
  *
- * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx.c,v 1.100 2004/05/11 20:39:46 gibbs Exp $
- * $DragonFly: src/sys/dev/disk/aic7xxx/aic7xxx.c,v 1.17 2007/07/06 02:04:20 pavalos Exp $
+ * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx.c,v 1.101 2004/08/13 21:39:14 gibbs Exp $
+ * $DragonFly: src/sys/dev/disk/aic7xxx/aic7xxx.c,v 1.18 2007/07/06 02:44:30 pavalos Exp $
  */
 
 #include "aic7xxx_osm.h"
@@ -1438,8 +1438,6 @@ ahc_clear_critical_section(struct ahc_softc *ahc)
                 * so we are really executing the instruction just
                 * before it.
                 */
-               if (seqaddr != 0)
-                       seqaddr -= 1;
                cs = ahc->critical_sections;
                for (i = 0; i < ahc->num_critical_sections; i++, cs++) {