The original idea and debug come from basos g patch with the following
comment:
"A dead lock was created when adding an spu filter (like marq)
because the same mutex was used for spu->p stuff and sub filter
chain (p_spu->p->p_chain)."
I implemented the creation/destruction of the chain outside the sub-filter
callback.