Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Mar 2002 09:15:51 -0700
From:      "Justin T. Gibbs" <gibbs@scsiguy.com>
To:        njh@tadpole.co.uk
Cc:        aic7xxx@FreeBSD.ORG
Subject:   Re: ahc_platform_abort_scbs() 
Message-ID:  <200203111615.g2BGFpI11861@aslan.scsiguy.com>
In-Reply-To: Your message of "Mon, 11 Mar 2002 15:56:56 GMT." <200203111556.g2BFuuw04505@njh-1.tadpole.co.uk> 

next in thread | previous in thread | raw e-mail | index | archive | help
>As I said, it isn't the TAILQ_REMOVE that concerns me, it's the 
>while(TAILQ_FIRST) when the thing being checked doesn't change in the loop.

I must be reading different code than you.  From the 6.2.5 linux driver:

	while ((acmd = TAILQ_FIRST(busyq)) != NULL) {

		[ other non-relevent stuff]
		TAILQ_REMOVE(busyq, acmd, acmd_links.tqe);
		[ more non-relevent stuff]
	}

We are removing the first element from the TAILQ until all are removed.
The head element will eventually go NULL unless you have created some
kind of list corruption.

>After all how else would you explain the non-terminating loop I see?

Since you've ported this code to Solaris, I wouldn't hazard a guess
unless I had reviewed the code and was at the machine with a debugger.

--
Justin

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe aic7xxx" in the body of the message




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