If something is blocking your sound card check what program is using it.
fstat | grep dsp
should do it...
I had the same problem, which was user incompetence. I'm not sure what sound card you have, but most sound cards have multiple channels. If one channel is blocked, simply use another one.
I'm not sure how they're used in Linux, but I'm assuming they use the dsp name as well. Check for how many dsp devices you have.
cd /dev
ls | grep dsp
My room mate said they're labeld dsp0, dsp1, dsp2, dsp3... etc in Linux. But, I use FreeBSD and they're labeled dsp0.0, dsp0.1, dsp0.2, etc etc.
With XMMS, I use the OSS driver, and configure it to use /dev/dsp0.3
Just do the same with Linux, check how many dsp devices you have, and just dedicate one to XMMS.
XMMS is the only program I have that is configured to use that channel, so I no longer get that device busy error message.
I hope that helped,
Mike U