Re: Oops when removing snd-timer

From: Zwane Mwaikambo (zwane@holomorphy.com)
Date: Mon Nov 18 2002 - 04:53:36 EST


On Mon, 18 Nov 2002, Zwane Mwaikambo wrote:

> Looks like you loaded ens137x.c and then that driver got unloaded leaving
> the callback still valid, then the core timer code decided to walk off a
> cliff using that pointer.

Not really the case, probably from pcm code.

> 0xc0365322 is in snd_timer_free (sound/core/timer.c:676).
> 671 static int snd_timer_free(snd_timer_t *timer)
> 672 {
> 673 snd_assert(timer != NULL, return -ENXIO);
> 674 if (timer->private_free)
> 675 timer->private_free(timer);
> 676 snd_magic_kfree(timer);
> 677 return 0;
> 678 }
>
> The problem seems to be a sort of chicken/egg case? We can't rely on
> modules being around even with this inter dependency case.

Perhaps driver specific code should be doing as much of their own cleanup
as possible. I'm still wondering how this managed to unload without that
getting run, unless its a simple case of forgetting a failure path.

        Zwane

-- 
function.linuxpower.ca

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Nov 23 2002 - 22:00:21 EST