event/sw: fix events mis-identified as needing reorder
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 14 Apr 2017 15:18:15 +0000 (16:18 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 19 Apr 2017 22:30:04 +0000 (00:30 +0200)
commit2e516d18dc013e603114011096259b30ce6a00de
tree43df85c75bde26467ce6269e3a0553be78ed6303
parent95a896ab861652035920f23ab784cc6f9a7aa521
event/sw: fix events mis-identified as needing reorder

When taking events from a port, we checked the history list to check if the
event needed to be put back in order i.e. originally came from a reordered
queue type. The check for reordering involved checking if the reorder
buffer entry pointer was null. However, after that pointer was used it was
never cleared to null again.

This caused problems when we had mixed reordered and atomic or parallel
events, as the events from the latter two queue types were misidentified as
needing reordering. This let in some cases to crashes, but mostly led to
dropping events, and then application lock-up.

Fixes: 617995dfc5b2 ("event/sw: add scheduling logic")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
drivers/event/sw/sw_evdev_scheduler.c