mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-24 17:14:25 +08:00
cpukit/dev/can: correct round-robin on same priority Tx
When the device is open multiple times and data are sent to driver by multiple FIFOs/edges then round-robin between same priority prevents one application blocking whole bandwidth. The problem has been introduced during switch from original uLUt/LinCAN to NewLib provided TAILQ Signed-off-by: Pavel Pisa <ppisa@pikron.com>
This commit is contained in:
committed by
Joel Sherrill
parent
818af27299
commit
25a479d5e6
@@ -391,7 +391,7 @@ int rtems_can_queue_test_outslot(
|
||||
TAILQ_REMOVE( edge->peershead, edge, activepeers );
|
||||
}
|
||||
if ( out_ready ) {
|
||||
TAILQ_INSERT_HEAD(
|
||||
TAILQ_INSERT_TAIL(
|
||||
&qends->active[ edge->edge_prio ],
|
||||
edge,
|
||||
activepeers
|
||||
|
||||
@@ -535,7 +535,7 @@ static inline void rtems_can_queue_activate_edge(
|
||||
TAILQ_REMOVE( qedge->peershead, qedge, activepeers );
|
||||
}
|
||||
|
||||
TAILQ_INSERT_HEAD(
|
||||
TAILQ_INSERT_TAIL(
|
||||
&output_ends->active[ qedge->edge_prio ],
|
||||
qedge,
|
||||
activepeers
|
||||
|
||||
Reference in New Issue
Block a user