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