[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU/Hurd sound system
From: |
Richard Braun |
Subject: |
Re: GNU/Hurd sound system |
Date: |
Sun, 27 Aug 2006 20:34:21 +0200 |
User-agent: |
Mutt/1.5.9i |
Hello,
I'm currently working on integrating one driver into GNU Mach. I think
it's almost done but I have troubles with low level stuff I'm not
familiar with. device_open() and device_close() work correctly (I
can devprobe dsp0 as many times I want without any crash), but
device_write() gives no sound and crashes the kernel. The crash can
always be reproduced, but there are two cases :
First case, small amount of data to write: the crash is in drain_dac(),
which is called by ess_release(), which is called by device_deallocate(),
when the ref count reaches 0 (both device_write() and device_close()
return).
Second case: small amount of data to write; the crash is within ess_write()
(the test driver is a slightly modified maestro3).
The function ess_write() calls copy_from_user(), so I didn't map anything
in kernel space and gave the buffer address as it is in the task user space
directly to ess_write(), but I'm not sure this is right. I don't see many
other alternatives that would leave the driver unmodified though.
Source code is available at my CVS repository [1], in the linux/sound
directory (linux/sound/glue/sound.c is the main glue code source file).
Thanks for any help.
--
Richard Braun
[1] http://cvs.sceen.net/index.cgi/gnumach/
signature.asc
Description: Digital signature
- Re: GNU/Hurd sound system,
Richard Braun <=