DF-1653 / fix.diff
--- a/sys/dev/netif/sbsh/if_sbsh.c +++ b/sys/dev/netif/sbsh/if_sbsh.c @@ -1042,8 +1042,13 @@ if (tsleep(sc, 0, "sbsh", hz << 3)) return (-1); - while (p->out_ack == _ACK_NOT_COMPLETE) - ; /* FIXME ! */ + { + int to = hz * 2; + while (p->out_ack == _ACK_NOT_COMPLETE && --to > 0) + DELAY(1000); + if (p->out_ack == _ACK_NOT_COMPLETE) + return (-1); + } if ((p->out_ack & 0x1f) == _ACK_PASS) { p->out_ack = 0; |