ahc_platform_abort_scbs()

Justin T. Gibbs gibbs at scsiguy.com
Mon Mar 11 08:13:55 PST 2002


>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 at FreeBSD.org
with "unsubscribe aic7xxx" in the body of the message




More information about the aic7xxx mailing list