From: malc Date: Fri, 11 Sep 2009 06:13:55 +0000 (+0400) Subject: oss: Unbreak mmaping the ability to mmap oss fd on Linux X-Git-Tag: v0.12.0-rc0~1136 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=2182349d736e8548f122b091731025f5ed63f670;p=qemu-xen-4.2-testing.git oss: Unbreak mmaping the ability to mmap oss fd on Linux Signed-off-by: malc --- diff --git a/audio/ossaudio.c b/audio/ossaudio.c index 18152b535..e4f90f202 100644 --- a/audio/ossaudio.c +++ b/audio/ossaudio.c @@ -205,13 +205,16 @@ static int oss_open (int in, struct oss_params *req, struct oss_params *obt, int *pfd) { int fd; + int oflags; int mmmmssss; audio_buf_info abinfo; int fmt, freq, nchannels; const char *dspname = in ? conf.devpath_in : conf.devpath_out; const char *typ = in ? "ADC" : "DAC"; - fd = open (dspname, (in ? O_RDONLY : O_WRONLY) | O_NONBLOCK); + /* Kludge needed to have working mmap on Linux */ + oflags = conf.try_mmap ? O_RDWR : (in ? O_RDONLY : O_WRONLY); + fd = open (dspname, oflags | O_NONBLOCK); if (-1 == fd) { oss_logerr2 (errno, typ, "Failed to open `%s'\n", dspname); return -1;