Messages in this thread Patch in this message | | | Date | Thu, 29 Aug 2002 21:56:27 +0200 | Subject | [PATCH] 16/41 sound/oss/v_midi.c - convert cli to spinlocks | From | pwaechtler@mac ... |
| |
--- vanilla-2.5.32/sound/oss/v_midi.c Sat Apr 20 18:25:21 2002 +++ linux-2.5-cli-oss/sound/oss/v_midi.c Tue Aug 13 16:00:57 2002 @@ -21,7 +21,7 @@ #include <linux/init.h> #include <linux/module.h> - +#include <linux/spinlock.h> #include "sound_config.h" #include "v_midi.h" @@ -52,15 +52,14 @@ if (devc == NULL) return -(ENXIO); - save_flags (flags); - cli(); + spin_lock_irqsave(&devc->lock,flags); if (devc->opened) { - restore_flags (flags); + spin_unlock_irqrestore(&devc->lock,flags); return -(EBUSY); } devc->opened = 1; - restore_flags (flags); + spin_unlock_irqrestore(&devc->lock,flags); devc->intr_active = 1; @@ -81,12 +80,11 @@ if (devc == NULL) return; - save_flags (flags); - cli (); + spin_lock_irqsave(&devc->lock,flags); devc->intr_active = 0; devc->input_opened = 0; devc->opened = 0; - restore_flags (flags); + spin_unlock_irqrestore(&devc->lock,flags); } static int v_midi_out (int dev, unsigned char midi_byte) @@ -222,6 +220,7 @@ v_devc[0]->opened = v_devc[0]->input_opened = 0; v_devc[0]->intr_active = 0; v_devc[0]->midi_input_intr = NULL; + spin_lock_init(&v_devc[0]->lock); midi_devs[midi1]->devc = v_devc[0]; @@ -242,6 +241,7 @@ v_devc[1]->opened = v_devc[1]->input_opened = 0; v_devc[1]->intr_active = 0; v_devc[1]->midi_input_intr = NULL; + spin_lock_init(&v_devc[1]->lock); midi_devs[midi2]->devc = v_devc[1]; midi_devs[midi2]->converter = &m->s_ops[1]; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |