Date: Mon, 11 Mar 2002 14:19:42 +0000 From: Nigel Horne <njh@smsltd.demon.co.uk> To: aic7xxx@freebsd.org Subject: ahc_platform_abort_scbs() Message-ID: <200203111419.g2BEJg103612@njh-1.tadpole.co.uk>
next in thread | raw e-mail | index | archive | help
ahc_platform_abort_scbs is looping on my Solaris 2.8 machine. I must be missing something, but I don't see how ahc_platform_abort_scbs() can do anything but loop in this bit: busyq = &dev->busyq; while ((acmd = TAILQ_FIRST(busyq)) != NULL) { ,,, TAILQ_REMOVE(busyq, acmd, acmd_links.tqe); ,,, } since TAILQ_FIRST is defined as ((head)->tqh_first and TAILQ_REMOVE doesn't update tqh_first, it's defined as #define TAILQ_REMOVE(head, elm, field) do { \ if ((TAILQ_NEXT((elm), field)) != NULL) \ TAILQ_NEXT((elm), field)->field.tqe_prev = \ (elm)->field.tqe_prev; \ else \ (head)->tqh_last = (elm)->field.tqe_prev; \ *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ } while (0) Please tell me I'm missing something here. -Nigel -- Nigel Horne. Arranger, Composer, Conductor, Typesetter. http://www.bandsman.co.uk/music.htm ICQ#20252325 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?200203111419.g2BEJg103612>