ahc_platform_abort_scbs()

Nigel Horne njh at smsltd.demon.co.uk
Mon Mar 11 08:21:01 PST 2002


On Monday 11 March 2002 4:15 pm, Justin T. Gibbs wrote:

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

Let me reword the issue in a different way.

>From queue.h:
#define TAILQ_FIRST(head)       ((head)->tqh_first)

#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)

The TAILQ_REMOVE macro does not touch tqh_first, so how can
	while((acmd = busyq->tqh_first) != NULL) { // macro written out
possibly stop when the loop does not alter the value busyq->tqh_first?

-Nigel

-- 
Nigel Horne. Arranger, Composer, Conductor, Typesetter.
http://www.bandsman.co.uk/music.htm ICQ#20252325

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