diff options
author | Takashi Iwai <tiwai@suse.de> | 2005-04-12 10:27:28 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2005-05-29 04:00:39 -0400 |
commit | bd7bf042e89941d4e693a0ec68c5093a2bb2adb3 (patch) | |
tree | 4a00c65644765b415b504d4e52471ea232a6dbcf | |
parent | 0af68e5ed45e985b676edfbe4b8851dd46316502 (diff) |
[ALSA] Fix permissions in some /proc files
PCM Midlevel,CA0106 driver,EMU10K1/EMU10K2 driver
Fix by Guillaume Chazarain <guichaz@yahoo.fr>:
Some tunables in /proc have a write() function, but as their
permission does not reflect it, it can be confusing to the user.
So here is a patch that corrects the mode of those files. Note that I
have only tested the 'xrun_debug' entry.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/core/pcm.c | 1 | ||||
-rw-r--r-- | sound/core/pcm_memory.c | 1 | ||||
-rw-r--r-- | sound/pci/ca0106/ca0106_proc.c | 2 | ||||
-rw-r--r-- | sound/pci/emu10k1/emu10k1x.c | 1 | ||||
-rw-r--r-- | sound/pci/emu10k1/emuproc.c | 5 |
5 files changed, 10 insertions, 0 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 8d94325529a8..a2757fcec1f0 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c | |||
@@ -451,6 +451,7 @@ static int snd_pcm_stream_proc_init(snd_pcm_str_t *pstr) | |||
451 | entry->c.text.read = snd_pcm_xrun_debug_read; | 451 | entry->c.text.read = snd_pcm_xrun_debug_read; |
452 | entry->c.text.write_size = 64; | 452 | entry->c.text.write_size = 64; |
453 | entry->c.text.write = snd_pcm_xrun_debug_write; | 453 | entry->c.text.write = snd_pcm_xrun_debug_write; |
454 | entry->mode |= S_IWUSR; | ||
454 | entry->private_data = pstr; | 455 | entry->private_data = pstr; |
455 | if (snd_info_register(entry) < 0) { | 456 | if (snd_info_register(entry) < 0) { |
456 | snd_info_free_entry(entry); | 457 | snd_info_free_entry(entry); |
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c index f1d5f7a6ee0c..9a174fb96565 100644 --- a/sound/core/pcm_memory.c +++ b/sound/core/pcm_memory.c | |||
@@ -204,6 +204,7 @@ static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream, | |||
204 | entry->c.text.read = snd_pcm_lib_preallocate_proc_read; | 204 | entry->c.text.read = snd_pcm_lib_preallocate_proc_read; |
205 | entry->c.text.write_size = 64; | 205 | entry->c.text.write_size = 64; |
206 | entry->c.text.write = snd_pcm_lib_preallocate_proc_write; | 206 | entry->c.text.write = snd_pcm_lib_preallocate_proc_write; |
207 | entry->mode |= S_IWUSR; | ||
207 | entry->private_data = substream; | 208 | entry->private_data = substream; |
208 | if (snd_info_register(entry) < 0) { | 209 | if (snd_info_register(entry) < 0) { |
209 | snd_info_free_entry(entry); | 210 | snd_info_free_entry(entry); |
diff --git a/sound/pci/ca0106/ca0106_proc.c b/sound/pci/ca0106/ca0106_proc.c index afb711421e47..0bc1d783a840 100644 --- a/sound/pci/ca0106/ca0106_proc.c +++ b/sound/pci/ca0106/ca0106_proc.c | |||
@@ -418,6 +418,7 @@ int __devinit snd_ca0106_proc_init(ca0106_t * emu) | |||
418 | snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read32); | 418 | snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read32); |
419 | entry->c.text.write_size = 64; | 419 | entry->c.text.write_size = 64; |
420 | entry->c.text.write = snd_ca0106_proc_reg_write32; | 420 | entry->c.text.write = snd_ca0106_proc_reg_write32; |
421 | entry->mode |= S_IWUSR; | ||
421 | } | 422 | } |
422 | if(! snd_card_proc_new(emu->card, "ca0106_reg16", &entry)) | 423 | if(! snd_card_proc_new(emu->card, "ca0106_reg16", &entry)) |
423 | snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read16); | 424 | snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read16); |
@@ -427,6 +428,7 @@ int __devinit snd_ca0106_proc_init(ca0106_t * emu) | |||
427 | snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read1); | 428 | snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read1); |
428 | entry->c.text.write_size = 64; | 429 | entry->c.text.write_size = 64; |
429 | entry->c.text.write = snd_ca0106_proc_reg_write; | 430 | entry->c.text.write = snd_ca0106_proc_reg_write; |
431 | entry->mode |= S_IWUSR; | ||
430 | // entry->private_data = emu; | 432 | // entry->private_data = emu; |
431 | } | 433 | } |
432 | if(! snd_card_proc_new(emu->card, "ca0106_regs2", &entry)) | 434 | if(! snd_card_proc_new(emu->card, "ca0106_regs2", &entry)) |
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index 04ba63762d3b..f8d92335a353 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c | |||
@@ -1075,6 +1075,7 @@ static int __devinit snd_emu10k1x_proc_init(emu10k1x_t * emu) | |||
1075 | snd_info_set_text_ops(entry, emu, 1024, snd_emu10k1x_proc_reg_read); | 1075 | snd_info_set_text_ops(entry, emu, 1024, snd_emu10k1x_proc_reg_read); |
1076 | entry->c.text.write_size = 64; | 1076 | entry->c.text.write_size = 64; |
1077 | entry->c.text.write = snd_emu10k1x_proc_reg_write; | 1077 | entry->c.text.write = snd_emu10k1x_proc_reg_write; |
1078 | entry->mode |= S_IWUSR; | ||
1078 | entry->private_data = emu; | 1079 | entry->private_data = emu; |
1079 | } | 1080 | } |
1080 | 1081 | ||
diff --git a/sound/pci/emu10k1/emuproc.c b/sound/pci/emu10k1/emuproc.c index 356fb7104253..cc22707c91fa 100644 --- a/sound/pci/emu10k1/emuproc.c +++ b/sound/pci/emu10k1/emuproc.c | |||
@@ -527,26 +527,31 @@ int __devinit snd_emu10k1_proc_init(emu10k1_t * emu) | |||
527 | snd_info_set_text_ops(entry, emu, 1024, snd_emu_proc_io_reg_read); | 527 | snd_info_set_text_ops(entry, emu, 1024, snd_emu_proc_io_reg_read); |
528 | entry->c.text.write_size = 64; | 528 | entry->c.text.write_size = 64; |
529 | entry->c.text.write = snd_emu_proc_io_reg_write; | 529 | entry->c.text.write = snd_emu_proc_io_reg_write; |
530 | entry->mode |= S_IWUSR; | ||
530 | } | 531 | } |
531 | if (! snd_card_proc_new(emu->card, "ptr_regs00a", &entry)) { | 532 | if (! snd_card_proc_new(emu->card, "ptr_regs00a", &entry)) { |
532 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read00a); | 533 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read00a); |
533 | entry->c.text.write_size = 64; | 534 | entry->c.text.write_size = 64; |
534 | entry->c.text.write = snd_emu_proc_ptr_reg_write00; | 535 | entry->c.text.write = snd_emu_proc_ptr_reg_write00; |
536 | entry->mode |= S_IWUSR; | ||
535 | } | 537 | } |
536 | if (! snd_card_proc_new(emu->card, "ptr_regs00b", &entry)) { | 538 | if (! snd_card_proc_new(emu->card, "ptr_regs00b", &entry)) { |
537 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read00b); | 539 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read00b); |
538 | entry->c.text.write_size = 64; | 540 | entry->c.text.write_size = 64; |
539 | entry->c.text.write = snd_emu_proc_ptr_reg_write00; | 541 | entry->c.text.write = snd_emu_proc_ptr_reg_write00; |
542 | entry->mode |= S_IWUSR; | ||
540 | } | 543 | } |
541 | if (! snd_card_proc_new(emu->card, "ptr_regs20a", &entry)) { | 544 | if (! snd_card_proc_new(emu->card, "ptr_regs20a", &entry)) { |
542 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20a); | 545 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20a); |
543 | entry->c.text.write_size = 64; | 546 | entry->c.text.write_size = 64; |
544 | entry->c.text.write = snd_emu_proc_ptr_reg_write20; | 547 | entry->c.text.write = snd_emu_proc_ptr_reg_write20; |
548 | entry->mode |= S_IWUSR; | ||
545 | } | 549 | } |
546 | if (! snd_card_proc_new(emu->card, "ptr_regs20b", &entry)) { | 550 | if (! snd_card_proc_new(emu->card, "ptr_regs20b", &entry)) { |
547 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20b); | 551 | snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20b); |
548 | entry->c.text.write_size = 64; | 552 | entry->c.text.write_size = 64; |
549 | entry->c.text.write = snd_emu_proc_ptr_reg_write20; | 553 | entry->c.text.write = snd_emu_proc_ptr_reg_write20; |
554 | entry->mode |= S_IWUSR; | ||
550 | } | 555 | } |
551 | #endif | 556 | #endif |
552 | 557 | ||