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>