]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/speakup/thread.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[~andy/linux] / drivers / staging / speakup / thread.c
index 42fa660a7e0db5fc65e21cdfad506e53dfad0185..4397c8e898c723d0beaed285b491ab316ce34095 100644 (file)
@@ -22,7 +22,7 @@ int speakup_thread(void *data)
        while (1) {
                DEFINE_WAIT(wait);
                while (1) {
-                       spk_lock(flags);
+                       spin_lock_irqsave(&speakup_info.spinlock, flags);
                        our_sound = spk_unprocessed_sound;
                        spk_unprocessed_sound.active = 0;
                        prepare_to_wait(&speakup_event, &wait,
@@ -32,7 +32,7 @@ int speakup_thread(void *data)
                                (synth && synth->catch_up && synth->alive &&
                                        (speakup_info.flushing ||
                                        !synth_buffer_empty()));
-                       spk_unlock(flags);
+                       spin_unlock_irqrestore(&speakup_info.spinlock, flags);
                        if (should_break)
                                break;
                        mutex_unlock(&spk_mutex);