A small fix for if_em.c, if_igb.c, if_ixgbe.c

Adrian Chadd adrian at freebsd.org
Mon Dec 9 03:44:25 UTC 2013


.. I'm saying that we should have if_transmit( )return an error only
on the current packet, and 0 if it was queued.

We don't have a mechanism to say that a queued packet actually made it
onto the wire. Whether we should is a different discussion.

Ie, after thinking about this some more, I'd like to:

* change if_transmit in these drivers to do exactly what you suggest -
it should return an error only if the given packet couldn't be queued.
It shouldn't matter whether it is later transmitted or not - we don't
have a feedback mechanism for that.
* figure out a very specific definition of what xxx_mq_start_locked()
should return - my gut feeling is an error if it couldn't queue a
frame, and 0 if it dispatched a frame to the hardware - and then make
the code match this definition.



-adrian


More information about the freebsd-net mailing list