]> git.hungrycats.org Git - linux/commitdiff
[PATCH] oss/waveartist.c - convert cli to spinlocks
authorPeter Wächtler <pwaechtler@mac.com>
Fri, 30 Aug 2002 08:30:38 +0000 (01:30 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Fri, 30 Aug 2002 08:30:38 +0000 (01:30 -0700)
sound/oss/waveartist.c

index 34b22c4ece3e2cc41cd673fd3ee9e481253fea1e..2e4d1105bb66f167b265cd119015635ebb3c03a4 100644 (file)
@@ -839,6 +839,7 @@ waveartist_intr(int irq, void *dev_id, struct pt_regs *regs)
        wavnc_info *devc = (wavnc_info *)dev_id;
        int        irqstatus, status;
 
+       spin_lock(&waveartist_lock);
        irqstatus = inb(devc->hw.io_base + IRQSTAT);
        status    = inb(devc->hw.io_base + STATR);
 
@@ -870,6 +871,7 @@ waveartist_intr(int irq, void *dev_id, struct pt_regs *regs)
        if (irqstatus & 0x2)
                // We do not use SB mode natively...
                printk(KERN_WARNING "waveartist: Unexpected SB interrupt...\n");
+       spin_unlock(&waveartist_lock);
 }
 
 /* -------------------------------------------------------------------------
@@ -1523,8 +1525,7 @@ vnc_volume_slider(wavnc_info *devc)
 
        *CSR_TIMER1_LOAD = 0x00ffffff;
 
-       save_flags(flags);
-       cli();
+       spin_lock_irqsave(&waveartist_lock, flags);
 
        outb(0xFF, 0x201);
        *CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_DIV1;
@@ -1534,7 +1535,7 @@ vnc_volume_slider(wavnc_info *devc)
 
        *CSR_TIMER1_CNTL = 0;
 
-       restore_flags(flags);
+       spin_unlock_irqrestore(&waveartist_lock,flags);
        
        volume = 0x00ffffff - *CSR_TIMER1_VALUE;