static __inline void
ahbqueuembox(struct ahb_softc *ahb, u_int32_t mboxval, u_int attn_code)
{
u_int loopmax = 300;
while (--loopmax) {
u_int status;
status = ahb_inb(ahb, HOSTSTAT);
if ((status & HOSTSTAT_MBOX_EMPTY|HOSTSTAT_BUSY)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!= HOSTSTAT_MBOX_EMPTY)
break;
DELAY(20);
}
if (loopmax == 0)
panic("ahb%ld: adapter not taking commands\n", ahb->unit);
ahb_outl(ahb, MBOXOUT0, mboxval);
ahb_outb(ahb, ATTN, attn_code);
}
& has higher precedence, so this is equivalently:
if (((status & HOSTSTAT_MBOX_EMPTY) | HOSTSTAT_BUSY) ...
Rather then:
if ((status & (HOSTSTAT_MBOX_EMPTYHOSTSTAT_BUSY)) ...
Fixed.
-Matt
Matthew Dillon
<[email protected]>
To Unsubscribe: send mail to [email protected]
with "unsubscribe freebsd-current" in the body of the message