I think I have fixed the problem, atleast the value of pcm->private_data doesn't get currupted anymore...After enabling kernel debugging for semaphores/mutexes, I realised that code was sleeping in a place where it was not supposed to. I dont know/didn't check where exactly the memory was getting corrupted but after doing appropriate lock/unlock the pcm->private_data seems looks healthy. But now when I do cat /dev/audio/ the machine just hangs!! Looking in to it. Clemens, I was holding mutexes in register_codec(), there it was corrupting. Thanks for help. -pharaoh. On 6/19/07, Clemens Ladisch <cladisch@xxxxxxxxxxxx> wrote: > Pharaoh . wrote: > > in register codec 4 pvt data is c3d81180 > > Registering the sound card > > in register codec 5 pvt data is c3998f20 > > > > i.e. after registering the sound card the value changes/gets > > corrupted, and c3998f20 > > is not the value I get everytime, so I am thinking it is corrrupted > somehow. > > I'd guess the memory gets overwritten. > > > But back in probe, after above function are executed, i.e. after > > register codec is over, I get the correct value for > > eac->pcm->private_data i.e. c3d81180, but by now the value of > > pcm->private_data is corrupted! > > This implies that eac->pcm != pcm. > > It seems quite a lot of memory gets corrupted. > Try to check which one of the various "eac" and "pcm" pointers changes > its value. > > > HTH > Clemens > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel