Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Feb 2011 01:00:40 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r218361 - stable/7/sys/dev/aac
Message-ID:  <201102060100.p1610ekh047340@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Sun Feb  6 01:00:40 2011
New Revision: 218361
URL: http://svn.freebsd.org/changeset/base/218361

Log:
  MFC r218207:
  
    Revert part of r173264.  Both aac_ioctl_sendfib and aac_ioctl_send_raw_srb
    make use of the aac_ioctl_event callback, if acc_alloc_command fails.
    This can end up in an infinite loop in the while loop in
    aac_release_command.

Modified:
  stable/7/sys/dev/aac/aac.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/dev/aac/aac.c
==============================================================================
--- stable/7/sys/dev/aac/aac.c	Sat Feb  5 23:32:17 2011	(r218360)
+++ stable/7/sys/dev/aac/aac.c	Sun Feb  6 01:00:40 2011	(r218361)
@@ -1411,11 +1411,7 @@ aac_release_command(struct aac_command *
 
 	aac_enqueue_free(cm);
 
-	/*
-	 * Dequeue all events so that there's no risk of events getting
-	 * stranded.
-	 */
-	while ((event = TAILQ_FIRST(&sc->aac_ev_cmfree)) != NULL) {
+	if ((event = TAILQ_FIRST(&sc->aac_ev_cmfree)) != NULL) {
 		TAILQ_REMOVE(&sc->aac_ev_cmfree, event, ev_links);
 		event->ev_callback(sc, event, event->ev_arg);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102060100.p1610ekh047340>