[ALSA] Fix permissions in some /proc files
authorTakashi Iwai <tiwai@suse.de>
Tue, 12 Apr 2005 14:27:28 +0000 (16:27 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sun, 29 May 2005 08:00:39 +0000 (10:00 +0200)
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>
sound/core/pcm.c
sound/core/pcm_memory.c
sound/pci/ca0106/ca0106_proc.c
sound/pci/emu10k1/emu10k1x.c
sound/pci/emu10k1/emuproc.c

index 8d94325529a87258bcdade5152f55fdb8f37b53f..a2757fcec1f0ebf2311c83cec25055dee1816b25 100644 (file)
@@ -451,6 +451,7 @@ static int snd_pcm_stream_proc_init(snd_pcm_str_t *pstr)
                entry->c.text.read = snd_pcm_xrun_debug_read;
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_pcm_xrun_debug_write;
+               entry->mode |= S_IWUSR;
                entry->private_data = pstr;
                if (snd_info_register(entry) < 0) {
                        snd_info_free_entry(entry);
index f1d5f7a6ee0c69b4e6131af5c10060a7d68e8590..9a174fb96565368abe767344de9bffca32887e09 100644 (file)
@@ -204,6 +204,7 @@ static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream,
                entry->c.text.read = snd_pcm_lib_preallocate_proc_read;
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_pcm_lib_preallocate_proc_write;
+               entry->mode |= S_IWUSR;
                entry->private_data = substream;
                if (snd_info_register(entry) < 0) {
                        snd_info_free_entry(entry);
index afb711421e479e7e70c4fa95e90607cab1a32f46..0bc1d783a840f18902ea78a4465e6235fc5b8b57 100644 (file)
@@ -418,6 +418,7 @@ int __devinit snd_ca0106_proc_init(ca0106_t * emu)
                snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read32);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_ca0106_proc_reg_write32;
+               entry->mode |= S_IWUSR;
        }
        if(! snd_card_proc_new(emu->card, "ca0106_reg16", &entry))
                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)
                snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_reg_read1);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_ca0106_proc_reg_write;
+               entry->mode |= S_IWUSR;
 //             entry->private_data = emu;
        }
        if(! snd_card_proc_new(emu->card, "ca0106_regs2", &entry)) 
index 04ba63762d3b99bce0fb5e520d0a9d607eb2ff75..f8d92335a353fc0e11c0b893df8acea5ab3b6ee0 100644 (file)
@@ -1075,6 +1075,7 @@ static int __devinit snd_emu10k1x_proc_init(emu10k1x_t * emu)
                snd_info_set_text_ops(entry, emu, 1024, snd_emu10k1x_proc_reg_read);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu10k1x_proc_reg_write;
+               entry->mode |= S_IWUSR;
                entry->private_data = emu;
        }
        
index 356fb71042531877d9f77421436053251daf36c6..cc22707c91fae86b4cda85809c250311b7c97269 100644 (file)
@@ -527,26 +527,31 @@ int __devinit snd_emu10k1_proc_init(emu10k1_t * emu)
                snd_info_set_text_ops(entry, emu, 1024, snd_emu_proc_io_reg_read);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu_proc_io_reg_write;
+               entry->mode |= S_IWUSR;
        }
        if (! snd_card_proc_new(emu->card, "ptr_regs00a", &entry)) {
                snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read00a);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu_proc_ptr_reg_write00;
+               entry->mode |= S_IWUSR;
        }
        if (! snd_card_proc_new(emu->card, "ptr_regs00b", &entry)) {
                snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read00b);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu_proc_ptr_reg_write00;
+               entry->mode |= S_IWUSR;
        }
        if (! snd_card_proc_new(emu->card, "ptr_regs20a", &entry)) {
                snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20a);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu_proc_ptr_reg_write20;
+               entry->mode |= S_IWUSR;
        }
        if (! snd_card_proc_new(emu->card, "ptr_regs20b", &entry)) {
                snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20b);
                entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu_proc_ptr_reg_write20;
+               entry->mode |= S_IWUSR;
        }
 #endif