The fxp driver is broken in a lot of places.

For example, in fxp_intr():

                        for (txp = sc->cbl_first; sc->tx_queued &&
                            (txp->cb_status & FXP_CB_STATUS_C) != 0;
                            txp = txp->next) {
                                if (txp->mb_head != NULL) {
                                        m_freem(txp->mb_head);
                                        txp->mb_head = NULL;
                                }
                                sc->tx_queued--;
                        }

...notice the "for" loop doesn't check to see if "txp = txp->next"
ends up being NULL?  You can get this, if you put your system
under extreme load.

If you can repeat the problem with another card, it's a real
problem, otherwise it's probably just FXP driver brain damage...


                                        Terry Lambert
                                        [EMAIL PROTECTED]
---
Any opinions in this posting are my own and not those of my present
or previous employers.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to