patch-2.4.21 linux-2.4.21/drivers/sound/cmpci.c
Next file: linux-2.4.21/drivers/sound/cs46xx.c
Previous file: linux-2.4.21/drivers/sound/awe_wave.c
Back to the patch index
Back to the overall index
- Lines: 48
- Date:
2003-06-13 07:51:36.000000000 -0700
- Orig file:
linux-2.4.20/drivers/sound/cmpci.c
- Orig date:
2002-08-02 17:39:44.000000000 -0700
diff -urN linux-2.4.20/drivers/sound/cmpci.c linux-2.4.21/drivers/sound/cmpci.c
@@ -82,6 +82,7 @@
* - speaker mixer support
* Mon Aug 13 2001
* - optimizations and cleanups
+ * 03/01/2003 - open_mode fixes from Georg Acher <acher@in.tum.de>
*
*/
/*****************************************************************************/
@@ -587,7 +588,8 @@
unsigned short *src = (unsigned short *)source;
do {
- data = (unsigned long) *src++;
+ __get_user(data, src);
+ src++;
data <<= 12; // ok for 16-bit data
if (s->spdif_counter == 2 || s->spdif_counter == 3)
data |= 0x40000000; // indicate AC-3 raw data
@@ -1598,9 +1600,9 @@
return -ENXIO;
if (!s->dma_adc.ready && (ret = prog_dmabuf(s, 1)))
return ret;
- if (!access_ok(VERIFY_READ, buffer, count))
- return -EFAULT;
}
+ if (!access_ok(VERIFY_READ, buffer, count))
+ return -EFAULT;
ret = 0;
while (count > 0) {
@@ -2266,7 +2268,7 @@
stop_adc(s);
dealloc_dmabuf(&s->dma_adc);
}
- s->open_mode &= (~file->f_mode) & (FMODE_READ|FMODE_WRITE);
+ s->open_mode &= ~(file->f_mode & (FMODE_READ|FMODE_WRITE));
up(&s->open_sem);
wake_up(&s->open_wait);
unlock_kernel();
@@ -2535,7 +2537,7 @@
set_current_state(TASK_RUNNING);
}
down(&s->open_sem);
- s->open_mode &= (~(file->f_mode << FMODE_MIDI_SHIFT)) & (FMODE_MIDI_READ|FMODE_MIDI_WRITE);
+ s->open_mode &= ~((file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ|FMODE_MIDI_WRITE));
spin_lock_irqsave(&s->lock, flags);
if (!(s->open_mode & (FMODE_MIDI_READ | FMODE_MIDI_WRITE))) {
del_timer(&s->midi.timer);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)