| 2fad65cf | 04-Apr-2017 |
Justin Hibbits <[email protected]> |
Don't calltsec_receive_intr_locked() from the error interrupt handler.
The tsec_error_intr_locked() is called with the global lock owned (e.g. the transmit and the receive lock are both owned). We
Don't calltsec_receive_intr_locked() from the error interrupt handler.
The tsec_error_intr_locked() is called with the global lock owned (e.g. the transmit and the receive lock are both owned). We must not call tsec_receive_intr_locked() while owning the transmit lock. The normal receive interrupt takes care that frames are received, this is none of the business of the error interrupt.
Submitted by: Sebastian Huber <sebastian.huber_AT_embedded-brains.de>
show more ...
|
| 2c0dbbcb | 04-Apr-2017 |
Justin Hibbits <[email protected]> |
Defragment the transmit mbuf chain only if necessary.
Use a method similar to the if_dwc driver. Use a wmb() before the flags of the first transmit buffer of a frame are written.
Group transmit/re
Defragment the transmit mbuf chain only if necessary.
Use a method similar to the if_dwc driver. Use a wmb() before the flags of the first transmit buffer of a frame are written.
Group transmit/receive structure members for better cache efficiency.
Tested on P1020RDB. TCP transmit throughput increases from 60MiB/s to 90MiB/s.
Submitted by: Sebastian Huber <sebastian.huber_AT_embedded-brains.de>
show more ...
|