Staging: speakup - syle fix permissions to octal
PATCH 1/1 Staging: speakup - syle fix permissions to octal
A style fix across whole driver.
changed permissions to octal style, found using checkpatch
--- 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(-)
drivers/staging/speakup/main.c +2 -2
@@ -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." );
drivers/staging/speakup/speakup.h +2 -2
@@ -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 }
drivers/staging/speakup/speakup_acntpc.c +13 -13
@@ -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." );
drivers/staging/speakup/speakup_acntsa.c +13 -13
@@ -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." );
drivers/staging/speakup/speakup_apollo.c +14 -14
@@ -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." );
drivers/staging/speakup/speakup_audptr.c +14 -14
@@ -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." );
drivers/staging/speakup/speakup_bns.c +13 -13
@@ -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." );
drivers/staging/speakup/speakup_decext.c +14 -14
@@ -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." );
drivers/staging/speakup/speakup_decpc.c +13 -13
@@ -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." );
drivers/staging/speakup/speakup_dectlk.c +14 -14
@@ -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." );
drivers/staging/speakup/speakup_dtlk.c +16 -16
@@ -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." );
drivers/staging/speakup/speakup_dummy.c +13 -13
@@ -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." );
drivers/staging/speakup/speakup_keypc.c +11 -11
@@ -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." );
drivers/staging/speakup/speakup_ltlk.c +16 -16
@@ -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." );
drivers/staging/speakup/speakup_soft.c +16 -16
@@ -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." );
drivers/staging/speakup/speakup_spkout.c +14 -14
@@ -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." );
drivers/staging/speakup/speakup_txprt.c +13 -13
@@ -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." );
Signature · 1 line
2.11.0
Quoted 2 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatch
[]
drivers/staging/speakup/main.c
Quoted 1 line
drivers/staging/speakup/main.c +0
-0
[]
drivers/staging/speakup/main.c MODULE_LICENSE("GPL"); · line 62
Quoted 8 lines
drivers/staging/speakup/main.c +2
-2@@ -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 );
Please don't add spaces before the close parenthesis.
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>
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
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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
Quoted 918 lines
--- 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(-)drivers/staging/speakup/main.c +2
-2@@ -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." );drivers/staging/speakup/speakup.h +2
-2@@ -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 }drivers/staging/speakup/speakup_acntpc.c +13
-13@@ -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." );drivers/staging/speakup/speakup_acntsa.c +13
-13@@ -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." );drivers/staging/speakup/speakup_apollo.c +14
-14@@ -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." );drivers/staging/speakup/speakup_audptr.c +14
-14@@ -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." );drivers/staging/speakup/speakup_bns.c +13
-13@@ -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." );drivers/staging/speakup/speakup_decext.c +14
-14@@ -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." );drivers/staging/speakup/speakup_decpc.c +13
-13@@ -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." );drivers/staging/speakup/speakup_dectlk.c +14
-14@@ -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." );drivers/staging/speakup/speakup_dtlk.c +16
-16@@ -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." );drivers/staging/speakup/speakup_dummy.c +13
-13@@ -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." );drivers/staging/speakup/speakup_keypc.c +11
-11@@ -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." );drivers/staging/speakup/speakup_ltlk.c +16
-16@@ -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." );drivers/staging/speakup/speakup_soft.c +16
-16@@ -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." );drivers/staging/speakup/speakup_spkout.c +14
-14@@ -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." );drivers/staging/speakup/speakup_txprt.c +13
-13@@ -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." );
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
Quoted 7 lines
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
Quoted 6 lines
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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.
Why do you think mixing file specific attributes
with octal permissions is a bad thing?
$ git log -1 f90774e1fd2700d commit f90774e1fd2700de4a6e0d62866d34a26c544bd0 Author: Joe Perches <[email protected]> Date: Tue Oct 11 13:51:47 2016 -0700
checkpatch: look for symbolic permissions and suggest octal instead
S_<FOO> uses should be avoided where octal is more intelligible.
Linus didst say:
: It's *much* easier to parse and understand the octal numbers, while the : symbolic macro names are just random line noise and hard as hell to : understand. You really have to think about it.
:
: So we should rather go the other way: convert existing bad symbolic : permission bit macro use to just use the octal numbers.
:
: The symbolic names are good for the *other* bits (ie sticky bit, and the : inode mode _type_ numbers etc), but for the permission bits, the symbolic : names are just insane crap. Nobody sane should ever use them. Not in the : kernel, not in user space.
(http://lkml.kernel.org/r/CA+55aFw5v23T-zvDZp-MmD_EYxF8WbafwwB59934FV7g21uMGQ@mail.gmail.com)
Quoted 11 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
Quoted 8 lines
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
Why not ? Seems to be quite simple. One just has to list all the variants being used in the rule.
Quoted 14 lines
Quoted 7 lines
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
Quoted 6 lines
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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.
Quoted 3 lines
Why do you think mixing file specific attributes
with octal permissions is a bad thing?
Just an assumption. My bad. Ultimately, what I think doesn't really matter, though - because what I think is that the whole "use octals" is a bad idea to start with.
Guenter
Quoted 38 lines · Guenter Roeck
Quoted 11 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
Quoted 8 lines
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
Why not ? Seems to be quite simple. One just has to list all the variants being used in the rule.
Quoted 14 lines
Quoted 13 lines
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
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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.
Quoted 7 lines
Quoted 3 lines
Why do you think mixing file specific attributes
with octal permissions is a bad thing?Just an assumption. My bad. Ultimately, what I think doesn't really matter, though - because what I think is that the whole "use octals" is a bad idea to start with.
I don't think I have received yet the message that this is referring to. But I don't see a problem for Coccinelle a priori. If there are things that need to be added together, as long as they are explicit constants, that can be done in python or ocaml.
julia
Quoted 46 lines · Julia Lawall
Quoted 42 lines · Guenter Roeck
Quoted 11 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
Quoted 8 lines
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
Why not ? Seems to be quite simple. One just has to list all the variants being used in the rule.
Quoted 17 lines
Quoted 7 lines
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
Quoted 6 lines
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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.
Why do you think mixing file specific attributes
with octal permissions is a bad thing?
Quoted 9 lines
Quoted 3 lines
Just an assumption. My bad. Ultimately, what I think doesn't really matter, though - because what I think is that the whole "use octals" is a bad idea to start with.
I don't think I have received yet the message that this is referring to. But I don't see a problem for Coccinelle a priori. If there are things that need to be added together, as long as they are explicit constants, that can be done in python or ocaml.
Something like
@@
@@
(
- S_IFREG | S_IRUGO | S_IWUGO
+ S_IFREG | 0666
|
- S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
+ 0644
|
- S_IRUGO|S_IWUSR
+ 0644
|
- S_IWUSR|S_IRUGO
+ 0644
|
- S_IRUGO|S_IWUGO
+ 0666
|
- S_IWUGO|S_IRUGO
+ 0666
|
- S_IRUGO
+ 0444
|
- S_IWUGO
+ 0222
|
- S_IWUSR
+ 0200
)
Odd is that the S_IFREG rule seems to be needed to catch "S_IFREG | S_IRUGO | S_IWUGO", but probably I am missing something as usual ;-).
Guenter
Quoted 92 lines · Guenter Roeck
Quoted 47 lines · Julia Lawall
Quoted 43 lines · Guenter Roeck
Quoted 11 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
Quoted 8 lines
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
Why not ? Seems to be quite simple. One just has to list all the variants being used in the rule.
Quoted 18 lines
Quoted 8 lines
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
Quoted 6 lines
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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.
Why do you think mixing file specific attributes
with octal permissions is a bad thing?Quoted 9 lines
Quoted 3 lines
Just an assumption. My bad. Ultimately, what I think doesn't really matter, though - because what I think is that the whole "use octals" is a bad idea to start with.
I don't think I have received yet the message that this is referring to. But I don't see a problem for Coccinelle a priori. If there are things that need to be added together, as long as they are explicit constants, that can be done in python or ocaml.
Something like
@@
@@(
-S_IFREG|S_IRUGO|S_IWUGO
+S_IFREG| 0666
|
-S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH
+ 0644
|
- S_IRUGO|S_IWUSR
+ 0644
|
- S_IWUSR|S_IRUGO
+ 0644
|
- S_IRUGO|S_IWUGO
+ 0666
|
- S_IWUGO|S_IRUGO
+ 0666
|
-S_IRUGO
+ 0444
|
-S_IWUGO
+ 0222
|
-S_IWUSR
+ 0200
)
Quoted 3 lines
Odd is that the
S_IFREGrule seems to be needed to catch "S_IFREG|S_IRUGO|S_IWUGO",
but probably I am missing something as usual ;-).
The associativity of | is not what you hope for.
julia
Quoted 11 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
Quoted 7 lines
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
OK, finally received. I think that Guenter's solution is a good one, because the rule-writer knows better than Coccinelle what people find to be intelligible.
julia
Quoted 48 lines
Quoted 8 lines
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
Quoted 6 lines
drivers/staging/speakup/speakup.h line 14
Quoted 4 lines
drivers/staging/speakup/speakup.h +2
-2-#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.
Why do you think mixing file specific attributes
with octal permissions is a bad thing?$ git log -1 f90774e1fd2700d commit f90774e1fd2700de4a6e0d62866d34a26c544bd0 Author: Joe Perches <[email protected]> Date: Tue Oct 11 13:51:47 2016 -0700checkpatch: look for symbolic permissions and suggest octal instead
S_<FOO> uses should be avoided where octal is more intelligible.
Linus didst say:
: It's *much* easier to parse and understand the octal numbers, while the : symbolic macro names are just random line noise and hard as hell to : understand. You really have to think about it.
:
: So we should rather go the other way: convert existing bad symbolic : permission bit macro use to just use the octal numbers.
:
: The symbolic names are good for the *other* bits (ie sticky bit, and the : inode mode _type_ numbers etc), but for the permission bits, the symbolic : names are just insane crap. Nobody sane should ever use them. Not in the : kernel, not in user space.
(http://lkml.kernel.org/r/CA+55aFw5v23T-zvDZp-MmD_EYxF8WbafwwB59934FV7g21uMGQ@mail.gmail.com)Link http://lkml.kernel.org/r/7232ef011d05a92f4caa86a5e9830d87966a2eaf.1470180926.git.joe@perches.com open hereSigned-off-by Joe Perches <[email protected]>Cc Linus Torvalds <[email protected]>Signed-off-by Andrew Morton <[email protected]>Signed-off-by Linus Torvalds <[email protected]>
Quoted 18 lines · Julia Lawall
Quoted 15 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
Quoted 7 lines
Quoted 3 lines
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
OK, finally received. I think that Guenter's solution is a good one, because the rule-writer knows better than Coccinelle what people find to be intelligible.
If it's written in python, I don't see how that's particularly different than being written in perl, but coccinelle could certainly handle expressions on multiple lines of these or'd constants better.
Are there any than span 2 or more lines?
I didn't see one with a casual grep.
Does coccinelle handle arbitrary ordering of these constants in a form like Guenter suggests or does each possible ordered sequence need to be written?
just fyi:
"S_IRWXU" => 0700
"S_IRUSR" => 0400
"S_IWUSR" => 0200
"S_IXUSR" => 0100
"S_IRWXG" => 0070
"S_IRGRP" => 0040
"S_IWGRP" => 0020
"S_IXGRP" => 0010
"S_IRWXO" => 0007
"S_IROTH" => 0004
"S_IWOTH" => 0002
"S_IXOTH" => 0001
"S_IRWXUGO" => 0777
"S_IRUGO" => 0444
"S_IWUGO" => 0222
"S_IXUGO" => 0111
Quoted 23 lines · Joe Perches
Quoted 22 lines · Julia Lawall
Quoted 18 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
Quoted 8 lines
Quoted 3 lines
OK, finally received. I think that Guenter's solution is a good one, because the rule-writer knows better than Coccinelle what people find to be intelligible.
If it's written in python, I don't see how that's particularly different than being written in perl, but coccinelle could certainly handle expressions on multiple lines of these or'd constants better.
Well, the python would only be needed if there was a need for actual calculations. Should S_IRGRP | S_IWGRP become 0060?
Quoted 7 lines
Are there any than span 2 or more lines?
I didn't see one with a casual grep.Does coccinelle handle arbitrary ordering of these constants in a form like Guenter suggests or does each possible ordered sequence need to be written?
There is the following isomorphism:
X | Y => Y | X
But that only works when the associativity is right.
A | B | C is (A | B) | C, so the B and C won't exchange with each other. One can also write eg
A | ... | B
which gives more fexibility. I'm not sure to what extent that works when there are changes, though.
julia
Quoted 18 lines
just fyi:
"
S_IRWXU" => 0700
"S_IRUSR" => 0400
"S_IWUSR" => 0200
"S_IXUSR" => 0100
"S_IRWXG" => 0070
"S_IRGRP" => 0040
"S_IWGRP" => 0020
"S_IXGRP" => 0010
"S_IRWXO" => 0007
"S_IROTH" => 0004
"S_IWOTH" => 0002
"S_IXOTH" => 0001
"S_IRWXUGO" => 0777
"S_IRUGO" => 0444
"S_IWUGO" => 0222
"S_IXUGO" => 0111
Quoted 30 lines · Julia Lawall
Quoted 27 lines · Joe Perches
Quoted 25 lines · Julia Lawall
Quoted 11 lines · Joe Perches
(adding Julia Lawall)
Quoted 7 lines · Guenter Roeck
Quoted 4 lines · Derek Robson
A style fix across whole driver.
changed permissions to octal style, found using checkpatchSigned-off-by Derek Robson <[email protected]>FWIW, I think changes like this are best done using coccinelle.
Quoted 7 lines
I think checkpatch does it reasonably well.
Julia? Can coccinelle do this?
I believe cocinelle doesn't handle the substitution and octal addition very well when multiple flags are used.
OK, finally received. I think that Guenter's solution is a good one, because the rule-writer knows better than Coccinelle what people find to be intelligible.
Quoted 7 lines
Quoted 4 lines
If it's written in python, I don't see how that's particularly different than being written in perl, but coccinelle could certainly handle expressions on multiple lines of these or'd constants better.
Well, the python would only be needed if there was a need for actual calculations. Should
S_IRGRP|S_IWGRPbecome 0060?
Yes.
Quoted 13 lines
Quoted 6 lines
Are there any than span 2 or more lines?
I didn't see one with a casual grep.Does coccinelle handle arbitrary ordering of these constants in a form like Guenter suggests or does each possible ordered sequence need to be written?
There is the following isomorphism:
X | Y => Y | X
But that only works when the associativity is right.
Quoted 7 lines
A | B | C is (A | B) | C, so the B and C won't exchange with each other. One can also write eg
A | ... | B
which gives more fexibility. I'm not sure to what extent that works when there are changes, though.
The perl code doesn't care about the ordering
but it doesn't handle the A | ... | B case.