From fe7946a7b61178a589a81805b052a70f50c668b2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michal=20Mal=C3=BD?= Date: Sat, 11 Jul 2015 11:26:13 +0200 Subject: [PATCH] Handle transition from STARTED to EMPTY uncombinable effect correctly when it is being replaced by a combinable effect. --- klgd_ff_plugin.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/klgd_ff_plugin.c b/klgd_ff_plugin.c index d1221f1..9151724 100644 --- a/klgd_ff_plugin.c +++ b/klgd_ff_plugin.c @@ -384,9 +384,17 @@ static int ffpl_handle_combinable_effects(struct klgd_plugin_private *priv, stru /* Uncombinable effect is about to be replaced by a combinable one */ if (ffpl_is_combinable(&eff->latest)) { printk(KERN_NOTICE "KLGDFF: Replacing uncombinable with combinable\n"); - ret = ffpl_erase_effect(priv, s, eff); - if (ret) - return ret; + switch (eff->state) { + case FFPL_STARTED: + ret = ffpl_stop_effect(priv, s, eff); + if (ret) + return ret; + default: + ret = ffpl_erase_effect(priv, s, eff); + if (ret) + return ret; + break; + } eff->replace = false; } else { /* Combinable effect is being replaced by an uncombinable one */ -- 2.43.5