aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/speakup/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/speakup/thread.c')
-rw-r--r--drivers/staging/speakup/thread.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/speakup/thread.c b/drivers/staging/speakup/thread.c
index 103c5c81ee8..4397c8e898c 100644
--- a/drivers/staging/speakup/thread.c
+++ b/drivers/staging/speakup/thread.c
@@ -22,9 +22,9 @@ int speakup_thread(void *data)
while (1) {
DEFINE_WAIT(wait);
while (1) {
- spk_lock(flags);
- our_sound = unprocessed_sound;
- unprocessed_sound.active = 0;
+ spin_lock_irqsave(&speakup_info.spinlock, flags);
+ our_sound = spk_unprocessed_sound;
+ spk_unprocessed_sound.active = 0;
prepare_to_wait(&speakup_event, &wait,
TASK_INTERRUPTIBLE);
should_break = kthread_should_stop() ||
@@ -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);