Re: Staging: speakup - syle fix permissions to octal

From: Guenter Roeck
Date: Fri Feb 03 2017 - 23:44:16 EST


On Sat, Jan 28, 2017 at 07:05:09PM +1300, Derek Robson wrote:
> A style fix across whole driver.
> changed permissions to octal style, found using checkpatch
>
> Signed-off-by: Derek Robson <robsonde@xxxxxxxxx>

FWIW, I think changes like this are best done using coccinelle.
That ensures that the results can be reproduced and are well defined.
As it is, someone will have to check each line of your patches to ensure
that the conversion is correct.

It would also ensure (hopefully) that we don't end up with constructs
such as

> -#define USER_R (S_IFREG|S_IRUGO)
> -#define USER_W (S_IFREG|S_IWUGO)
> +#define USER_R (S_IFREG|0444)
> +#define USER_W (S_IFREG|0666)

which really defeat the purpose of the whole exercise.

In this case, it seems to me that USER_R and USER_W should be dropped
entirely. Otherwise you might as well define USER_IRUGO and use it
instead of S_IRUGO to make checkpatch happy.

But wait ... those definitions are not even used. Hmm.

Guenter

> ---
> drivers/staging/speakup/main.c | 4 ++--
> drivers/staging/speakup/speakup.h | 4 ++--
> drivers/staging/speakup/speakup_acntpc.c | 26 +++++++++++++-------------
> drivers/staging/speakup/speakup_acntsa.c | 26 +++++++++++++-------------
> drivers/staging/speakup/speakup_apollo.c | 28 ++++++++++++++--------------
> drivers/staging/speakup/speakup_audptr.c | 28 ++++++++++++++--------------
> drivers/staging/speakup/speakup_bns.c | 26 +++++++++++++-------------
> drivers/staging/speakup/speakup_decext.c | 28 ++++++++++++++--------------
> drivers/staging/speakup/speakup_decpc.c | 26 +++++++++++++-------------
> drivers/staging/speakup/speakup_dectlk.c | 28 ++++++++++++++--------------
> drivers/staging/speakup/speakup_dtlk.c | 32 ++++++++++++++++----------------
> drivers/staging/speakup/speakup_dummy.c | 26 +++++++++++++-------------
> drivers/staging/speakup/speakup_keypc.c | 22 +++++++++++-----------
> drivers/staging/speakup/speakup_ltlk.c | 32 ++++++++++++++++----------------
> drivers/staging/speakup/speakup_soft.c | 32 ++++++++++++++++----------------
> drivers/staging/speakup/speakup_spkout.c | 28 ++++++++++++++--------------
> drivers/staging/speakup/speakup_txprt.c | 26 +++++++++++++-------------
> 17 files changed, 211 insertions(+), 211 deletions(-)
>
> diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c
> index 5c192042eeac..f7e555b30deb 100644
> --- a/drivers/staging/speakup/main.c
> +++ b/drivers/staging/speakup/main.c
> @@ -58,8 +58,8 @@ MODULE_LICENSE("GPL");
> MODULE_VERSION(SPEAKUP_VERSION);
>
> char *synth_name;
> -module_param_named(synth, synth_name, charp, S_IRUGO);
> -module_param_named(quiet, spk_quiet_boot, bool, S_IRUGO);
> +module_param_named(synth, synth_name, charp, 0444 );
> +module_param_named(quiet, spk_quiet_boot, bool, 0444 );
>
> MODULE_PARM_DESC(synth, "Synth to start if speakup is built in.");
> MODULE_PARM_DESC(quiet, "Do not announce when the synthesizer is found.");
> diff --git a/drivers/staging/speakup/speakup.h b/drivers/staging/speakup/speakup.h
> index df74c912da72..ee567aaf93a3 100644
> --- a/drivers/staging/speakup/speakup.h
> +++ b/drivers/staging/speakup/speakup.h
> @@ -10,8 +10,8 @@
> #define MAX_DESC_LEN 72
>
> /* proc permissions */
> -#define USER_R (S_IFREG|S_IRUGO)
> -#define USER_W (S_IFREG|S_IWUGO)
> +#define USER_R (S_IFREG|0444)
> +#define USER_W (S_IFREG|0666)
>
> #define TOGGLE_0 .u.n = {NULL, 0, 0, 1, 0, 0, NULL }
> #define TOGGLE_1 .u.n = {NULL, 1, 0, 1, 0, 0, NULL }
> diff --git a/drivers/staging/speakup/speakup_acntpc.c b/drivers/staging/speakup/speakup_acntpc.c
> index efb791bb642b..c7fab261d860 100644
> --- a/drivers/staging/speakup/speakup_acntpc.c
> +++ b/drivers/staging/speakup/speakup_acntpc.c
> @@ -57,28 +57,28 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/acntpc.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -307,8 +307,8 @@ static void accent_release(void)
> speakup_info.port_tts = 0;
> }
>
> -module_param_named(port, port_forced, int, S_IRUGO);
> -module_param_named(start, synth_acntpc.startup, short, S_IRUGO);
> +module_param_named(port, port_forced, int, 0444);
> +module_param_named(start, synth_acntpc.startup, short, 0444);
>
> MODULE_PARM_DESC(port, "Set the port for the synthesizer (override probing).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_acntsa.c b/drivers/staging/speakup/speakup_acntsa.c
> index 34f45d3549b2..b4e49cdd2014 100644
> --- a/drivers/staging/speakup/speakup_acntsa.c
> +++ b/drivers/staging/speakup/speakup_acntsa.c
> @@ -43,28 +43,28 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/acntsa.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -133,8 +133,8 @@ static int synth_probe(struct spk_synth *synth)
> return failed;
> }
>
> -module_param_named(ser, synth_acntsa.ser, int, S_IRUGO);
> -module_param_named(start, synth_acntsa.startup, short, S_IRUGO);
> +module_param_named(ser, synth_acntsa.ser, int, 0444);
> +module_param_named(start, synth_acntsa.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_apollo.c b/drivers/staging/speakup/speakup_apollo.c
> index 3cbc8a7ad1ef..63efa6180346 100644
> --- a/drivers/staging/speakup/speakup_apollo.c
> +++ b/drivers/staging/speakup/speakup_apollo.c
> @@ -49,30 +49,30 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/apollo.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute lang_attribute =
> - __ATTR(lang, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(lang, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -197,8 +197,8 @@ static void do_catch_up(struct spk_synth *synth)
> spk_serial_out(PROCSPEECH);
> }
>
> -module_param_named(ser, synth_apollo.ser, int, S_IRUGO);
> -module_param_named(start, synth_apollo.startup, short, S_IRUGO);
> +module_param_named(ser, synth_apollo.ser, int, 0444);
> +module_param_named(start, synth_apollo.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_audptr.c b/drivers/staging/speakup/speakup_audptr.c
> index 7a12b8408b67..e696b87bf515 100644
> --- a/drivers/staging/speakup/speakup_audptr.c
> +++ b/drivers/staging/speakup/speakup_audptr.c
> @@ -45,30 +45,30 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/audptr.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -167,8 +167,8 @@ static int synth_probe(struct spk_synth *synth)
> return 0;
> }
>
> -module_param_named(ser, synth_audptr.ser, int, S_IRUGO);
> -module_param_named(start, synth_audptr.startup, short, S_IRUGO);
> +module_param_named(ser, synth_audptr.ser, int, 0444);
> +module_param_named(start, synth_audptr.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_bns.c b/drivers/staging/speakup/speakup_bns.c
> index 570f0c21745e..208e0bdea119 100644
> --- a/drivers/staging/speakup/speakup_bns.c
> +++ b/drivers/staging/speakup/speakup_bns.c
> @@ -40,28 +40,28 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/bns.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -117,8 +117,8 @@ static struct spk_synth synth_bns = {
> },
> };
>
> -module_param_named(ser, synth_bns.ser, int, S_IRUGO);
> -module_param_named(start, synth_bns.startup, short, S_IRUGO);
> +module_param_named(ser, synth_bns.ser, int, 0444);
> +module_param_named(start, synth_bns.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_decext.c b/drivers/staging/speakup/speakup_decext.c
> index 1a5cf3d0a559..28796a27b304 100644
> --- a/drivers/staging/speakup/speakup_decext.c
> +++ b/drivers/staging/speakup/speakup_decext.c
> @@ -67,30 +67,30 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/decext.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -226,8 +226,8 @@ static void synth_flush(struct spk_synth *synth)
> spk_synth_immediate(synth, "\033P;10z\033\\");
> }
>
> -module_param_named(ser, synth_decext.ser, int, S_IRUGO);
> -module_param_named(start, synth_decext.startup, short, S_IRUGO);
> +module_param_named(ser, synth_decext.ser, int, 0444);
> +module_param_named(start, synth_decext.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_decpc.c b/drivers/staging/speakup/speakup_decpc.c
> index d6479bd2163b..ac299a399e45 100644
> --- a/drivers/staging/speakup/speakup_decpc.c
> +++ b/drivers/staging/speakup/speakup_decpc.c
> @@ -161,30 +161,30 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/decpc.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -486,7 +486,7 @@ static void dtpc_release(void)
> speakup_info.port_tts = 0;
> }
>
> -module_param_named(start, synth_dec_pc.startup, short, S_IRUGO);
> +module_param_named(start, synth_dec_pc.startup, short, 0444);
>
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
>
> diff --git a/drivers/staging/speakup/speakup_dectlk.c b/drivers/staging/speakup/speakup_dectlk.c
> index 764656759fbf..26036050cdb2 100644
> --- a/drivers/staging/speakup/speakup_dectlk.c
> +++ b/drivers/staging/speakup/speakup_dectlk.c
> @@ -66,30 +66,30 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/dectlk.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -295,8 +295,8 @@ static void synth_flush(struct spk_synth *synth)
> spk_serial_out(SYNTH_CLEAR);
> }
>
> -module_param_named(ser, synth_dectlk.ser, int, S_IRUGO);
> -module_param_named(start, synth_dectlk.startup, short, S_IRUGO);
> +module_param_named(ser, synth_dectlk.ser, int, 0444);
> +module_param_named(start, synth_dectlk.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_dtlk.c b/drivers/staging/speakup/speakup_dtlk.c
> index 38aa4013bf62..7516e2eda348 100644
> --- a/drivers/staging/speakup/speakup_dtlk.c
> +++ b/drivers/staging/speakup/speakup_dtlk.c
> @@ -63,34 +63,34 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/dtlk.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute freq_attribute =
> - __ATTR(freq, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(freq, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -378,8 +378,8 @@ static void dtlk_release(void)
> speakup_info.port_tts = 0;
> }
>
> -module_param_named(port, port_forced, int, S_IRUGO);
> -module_param_named(start, synth_dtlk.startup, short, S_IRUGO);
> +module_param_named(port, port_forced, int, 0444);
> +module_param_named(start, synth_dtlk.startup, short, 0444);
>
> MODULE_PARM_DESC(port, "Set the port for the synthesizer (override probing).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_dummy.c b/drivers/staging/speakup/speakup_dummy.c
> index 87d2a8002b47..cb7cef30c124 100644
> --- a/drivers/staging/speakup/speakup_dummy.c
> +++ b/drivers/staging/speakup/speakup_dummy.c
> @@ -42,28 +42,28 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/dummy.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -119,8 +119,8 @@ static struct spk_synth synth_dummy = {
> },
> };
>
> -module_param_named(ser, synth_dummy.ser, int, S_IRUGO);
> -module_param_named(start, synth_dummy.startup, short, S_IRUGO);
> +module_param_named(ser, synth_dummy.ser, int, 0444);
> +module_param_named(start, synth_dummy.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_keypc.c b/drivers/staging/speakup/speakup_keypc.c
> index 5e2170bf4a8b..10f4964782e2 100644
> --- a/drivers/staging/speakup/speakup_keypc.c
> +++ b/drivers/staging/speakup/speakup_keypc.c
> @@ -55,24 +55,24 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/keypc.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -309,8 +309,8 @@ static void keynote_release(void)
> synth_port = 0;
> }
>
> -module_param_named(port, port_forced, int, S_IRUGO);
> -module_param_named(start, synth_keypc.startup, short, S_IRUGO);
> +module_param_named(port, port_forced, int, 0444);
> +module_param_named(start, synth_keypc.startup, short, 0444);
>
> MODULE_PARM_DESC(port, "Set the port for the synthesizer (override probing).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_ltlk.c b/drivers/staging/speakup/speakup_ltlk.c
> index b474e8b65f9a..b014aa1fcadd 100644
> --- a/drivers/staging/speakup/speakup_ltlk.c
> +++ b/drivers/staging/speakup/speakup_ltlk.c
> @@ -46,34 +46,34 @@ static struct var_t vars[] = {
> * These attributes will appear in /sys/accessibility/speakup/ltlk.
> */
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute freq_attribute =
> - __ATTR(freq, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(freq, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -165,8 +165,8 @@ static int synth_probe(struct spk_synth *synth)
> return failed;
> }
>
> -module_param_named(ser, synth_ltlk.ser, int, S_IRUGO);
> -module_param_named(start, synth_ltlk.startup, short, S_IRUGO);
> +module_param_named(ser, synth_ltlk.ser, int, 0444);
> +module_param_named(start, synth_ltlk.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c
> index ed3e4282f41c..ff68a384f9c2 100644
> --- a/drivers/staging/speakup/speakup_soft.c
> +++ b/drivers/staging/speakup/speakup_soft.c
> @@ -58,41 +58,41 @@ static struct var_t vars[] = {
> /* These attributes will appear in /sys/accessibility/speakup/soft. */
>
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute freq_attribute =
> - __ATTR(freq, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(freq, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute voice_attribute =
> - __ATTR(voice, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(voice, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> /*
> * We should uncomment the following definition, when we agree on a
> * method of passing a language designation to the software synthesizer.
> * static struct kobj_attribute lang_attribute =
> - * __ATTR(lang, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
> + * __ATTR(lang, 0644, spk_var_show, spk_var_store);
> */
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -340,7 +340,7 @@ static int softsynth_is_alive(struct spk_synth *synth)
> return 0;
> }
>
> -module_param_named(start, synth_soft.startup, short, S_IRUGO);
> +module_param_named(start, synth_soft.startup, short, 0444);
>
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
>
> diff --git a/drivers/staging/speakup/speakup_spkout.c b/drivers/staging/speakup/speakup_spkout.c
> index 586890908826..143fadabfe6c 100644
> --- a/drivers/staging/speakup/speakup_spkout.c
> +++ b/drivers/staging/speakup/speakup_spkout.c
> @@ -43,30 +43,30 @@ static struct var_t vars[] = {
> /* These attributes will appear in /sys/accessibility/speakup/spkout. */
>
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute punct_attribute =
> - __ATTR(punct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(punct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -135,8 +135,8 @@ static void synth_flush(struct spk_synth *synth)
> outb(SYNTH_CLEAR, speakup_info.port_tts);
> }
>
> -module_param_named(ser, synth_spkout.ser, int, S_IRUGO);
> -module_param_named(start, synth_spkout.startup, short, S_IRUGO);
> +module_param_named(ser, synth_spkout.ser, int, 0444);
> +module_param_named(start, synth_spkout.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
> diff --git a/drivers/staging/speakup/speakup_txprt.c b/drivers/staging/speakup/speakup_txprt.c
> index b3d2cfd20ac8..aa2f338d15d8 100644
> --- a/drivers/staging/speakup/speakup_txprt.c
> +++ b/drivers/staging/speakup/speakup_txprt.c
> @@ -39,28 +39,28 @@ static struct var_t vars[] = {
> /* These attributes will appear in /sys/accessibility/speakup/txprt. */
>
> static struct kobj_attribute caps_start_attribute =
> - __ATTR(caps_start, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_start, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute caps_stop_attribute =
> - __ATTR(caps_stop, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute pitch_attribute =
> - __ATTR(pitch, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(pitch, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute rate_attribute =
> - __ATTR(rate, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(rate, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute tone_attribute =
> - __ATTR(tone, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(tone, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute vol_attribute =
> - __ATTR(vol, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(vol, 0644, spk_var_show, spk_var_store);
>
> static struct kobj_attribute delay_time_attribute =
> - __ATTR(delay_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(delay_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute direct_attribute =
> - __ATTR(direct, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(direct, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute full_time_attribute =
> - __ATTR(full_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(full_time, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute jiffy_delta_attribute =
> - __ATTR(jiffy_delta, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(jiffy_delta, 0644, spk_var_show, spk_var_store);
> static struct kobj_attribute trigger_time_attribute =
> - __ATTR(trigger_time, S_IWUSR | S_IRUGO, spk_var_show, spk_var_store);
> + __ATTR(trigger_time, 0644, spk_var_show, spk_var_store);
>
> /*
> * Create a group of attributes so that we can create and destroy them all
> @@ -116,8 +116,8 @@ static struct spk_synth synth_txprt = {
> },
> };
>
> -module_param_named(ser, synth_txprt.ser, int, S_IRUGO);
> -module_param_named(start, synth_txprt.startup, short, S_IRUGO);
> +module_param_named(ser, synth_txprt.ser, int, 0444);
> +module_param_named(start, synth_txprt.startup, short, 0444);
>
> MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
> MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");