aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-04-28 09:13:41 -0400
committerJaroslav Kysela <perex@suse.cz>2006-06-22 15:33:10 -0400
commitd689e34b524b69c111db0b7c844d71c8e1a53b15 (patch)
treea37916ba70fd8d37d14bf546a656722fb4ed79ab /sound/core
parentbf850204a71a97eb5a6afaf27263bb667f9cab0a (diff)
[ALSA] Remove spinlocks around proc prints
Don't lock during showing proc read. snd_iprintf() might sleep. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/pcm.c6
-rw-r--r--sound/core/timer.c2
2 files changed, 0 insertions, 8 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 08223783cfa3..4f5204175d37 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -351,10 +351,8 @@ static void snd_pcm_substream_proc_hw_params_read(struct snd_info_entry *entry,
351 snd_iprintf(buffer, "closed\n"); 351 snd_iprintf(buffer, "closed\n");
352 return; 352 return;
353 } 353 }
354 snd_pcm_stream_lock_irq(substream);
355 if (runtime->status->state == SNDRV_PCM_STATE_OPEN) { 354 if (runtime->status->state == SNDRV_PCM_STATE_OPEN) {
356 snd_iprintf(buffer, "no setup\n"); 355 snd_iprintf(buffer, "no setup\n");
357 snd_pcm_stream_unlock_irq(substream);
358 return; 356 return;
359 } 357 }
360 snd_iprintf(buffer, "access: %s\n", snd_pcm_access_name(runtime->access)); 358 snd_iprintf(buffer, "access: %s\n", snd_pcm_access_name(runtime->access));
@@ -375,7 +373,6 @@ static void snd_pcm_substream_proc_hw_params_read(struct snd_info_entry *entry,
375 snd_iprintf(buffer, "OSS period frames: %lu\n", (unsigned long)runtime->oss.period_frames); 373 snd_iprintf(buffer, "OSS period frames: %lu\n", (unsigned long)runtime->oss.period_frames);
376 } 374 }
377#endif 375#endif
378 snd_pcm_stream_unlock_irq(substream);
379} 376}
380 377
381static void snd_pcm_substream_proc_sw_params_read(struct snd_info_entry *entry, 378static void snd_pcm_substream_proc_sw_params_read(struct snd_info_entry *entry,
@@ -387,10 +384,8 @@ static void snd_pcm_substream_proc_sw_params_read(struct snd_info_entry *entry,
387 snd_iprintf(buffer, "closed\n"); 384 snd_iprintf(buffer, "closed\n");
388 return; 385 return;
389 } 386 }
390 snd_pcm_stream_lock_irq(substream);
391 if (runtime->status->state == SNDRV_PCM_STATE_OPEN) { 387 if (runtime->status->state == SNDRV_PCM_STATE_OPEN) {
392 snd_iprintf(buffer, "no setup\n"); 388 snd_iprintf(buffer, "no setup\n");
393 snd_pcm_stream_unlock_irq(substream);
394 return; 389 return;
395 } 390 }
396 snd_iprintf(buffer, "tstamp_mode: %s\n", snd_pcm_tstamp_mode_name(runtime->tstamp_mode)); 391 snd_iprintf(buffer, "tstamp_mode: %s\n", snd_pcm_tstamp_mode_name(runtime->tstamp_mode));
@@ -403,7 +398,6 @@ static void snd_pcm_substream_proc_sw_params_read(struct snd_info_entry *entry,
403 snd_iprintf(buffer, "silence_threshold: %lu\n", runtime->silence_threshold); 398 snd_iprintf(buffer, "silence_threshold: %lu\n", runtime->silence_threshold);
404 snd_iprintf(buffer, "silence_size: %lu\n", runtime->silence_size); 399 snd_iprintf(buffer, "silence_size: %lu\n", runtime->silence_size);
405 snd_iprintf(buffer, "boundary: %lu\n", runtime->boundary); 400 snd_iprintf(buffer, "boundary: %lu\n", runtime->boundary);
406 snd_pcm_stream_unlock_irq(substream);
407} 401}
408 402
409static void snd_pcm_substream_proc_status_read(struct snd_info_entry *entry, 403static void snd_pcm_substream_proc_status_read(struct snd_info_entry *entry,
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 9a1e51c7c230..e37eab74572d 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -1095,7 +1095,6 @@ static void snd_timer_proc_read(struct snd_info_entry *entry,
1095 if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE) 1095 if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE)
1096 snd_iprintf(buffer, " SLAVE"); 1096 snd_iprintf(buffer, " SLAVE");
1097 snd_iprintf(buffer, "\n"); 1097 snd_iprintf(buffer, "\n");
1098 spin_lock_irqsave(&timer->lock, flags);
1099 list_for_each(q, &timer->open_list_head) { 1098 list_for_each(q, &timer->open_list_head) {
1100 ti = list_entry(q, struct snd_timer_instance, open_list); 1099 ti = list_entry(q, struct snd_timer_instance, open_list);
1101 snd_iprintf(buffer, " Client %s : %s\n", 1100 snd_iprintf(buffer, " Client %s : %s\n",
@@ -1104,7 +1103,6 @@ static void snd_timer_proc_read(struct snd_info_entry *entry,
1104 SNDRV_TIMER_IFLG_RUNNING) 1103 SNDRV_TIMER_IFLG_RUNNING)
1105 ? "running" : "stopped"); 1104 ? "running" : "stopped");
1106 } 1105 }
1107 spin_unlock_irqrestore(&timer->lock, flags);
1108 } 1106 }
1109 mutex_unlock(&register_mutex); 1107 mutex_unlock(&register_mutex);
1110} 1108}