[PATCH] powerpc: Use octal numbers for file permissions

Cyril Bur cyrilbur at gmail.com
Fri Jan 13 18:51:23 AEDT 2017


On Thu, 2017-01-12 at 14:54 +1100, Russell Currey wrote:
> Symbolic macros are unintuitive and hard to read, whereas octal constants
> are much easier to interpret.  Replace macros for the basic permission
> flags (user/group/other read/write/execute) with numeric constants
> instead, across the whole powerpc tree.
> 
> Introducing a significant number of changes across the tree for no runtime
> benefit isn't exactly desirable, but so long as these macros are still
> used in the tree people will keep sending patches that add them.  Not only
> are they hard to parse at a glance, there are multiple ways of coming to
> the same value (as you can see with 0444 and 0644 in this patch) which
> hurts readability.
> 
> Signed-off-by: Russell Currey <ruscur at russell.cc>

Reviewed-by: Cyril Bur <cyrilbur at gmail.com>

> ---
> I wondered what a "S_IRUGO" was and subsequently found the following:
> 	https://lwn.net/Articles/696229/
> so I figured making numeric constants standard across the tree was a good
> idea instead of the mix we currently have.
> 
> For new patches that come in, checkpatch warns when using something like
> S_IRUGO and tells you to use something like 0444 instead.

I wonder if both these points shouldn't actually be in the commit
message?

> ---
>  arch/powerpc/kernel/eeh_sysfs.c                |  2 +-
>  arch/powerpc/kernel/iommu.c                    |  2 +-
>  arch/powerpc/kernel/proc_powerpc.c             |  2 +-
>  arch/powerpc/kernel/rtas-proc.c                | 14 +++++++-------
>  arch/powerpc/kernel/rtas_flash.c               |  2 +-
>  arch/powerpc/kernel/rtasd.c                    |  2 +-
>  arch/powerpc/kernel/traps.c                    |  4 ++--
>  arch/powerpc/kvm/book3s_hv.c                   | 10 ++++------
>  arch/powerpc/kvm/book3s_xics.c                 |  2 +-
>  arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c |  2 +-
>  arch/powerpc/platforms/cell/spufs/inode.c      |  4 ++--
>  arch/powerpc/platforms/powernv/opal-dump.c     |  4 ++--
>  arch/powerpc/platforms/powernv/opal-elog.c     |  4 ++--
>  arch/powerpc/platforms/powernv/opal-sysparam.c |  6 +++---
>  arch/powerpc/platforms/pseries/cmm.c           | 16 ++++++++--------
>  arch/powerpc/platforms/pseries/dlpar.c         |  2 +-
>  arch/powerpc/platforms/pseries/hvCall_inst.c   |  2 +-
>  arch/powerpc/platforms/pseries/ibmebus.c       |  4 ++--
>  arch/powerpc/platforms/pseries/lparcfg.c       |  4 ++--
>  arch/powerpc/platforms/pseries/mobility.c      |  4 ++--
>  arch/powerpc/platforms/pseries/reconfig.c      |  2 +-
>  arch/powerpc/platforms/pseries/scanlog.c       |  2 +-
>  arch/powerpc/platforms/pseries/suspend.c       |  3 +--
>  arch/powerpc/platforms/pseries/vio.c           |  8 ++++----
>  arch/powerpc/sysdev/axonram.c                  |  2 +-
>  arch/powerpc/sysdev/mv64x60_pci.c              |  2 +-
>  26 files changed, 54 insertions(+), 57 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/eeh_sysfs.c b/arch/powerpc/kernel/eeh_sysfs.c
> index 1ceecdda810b..f6d2d5b66907 100644
> --- a/arch/powerpc/kernel/eeh_sysfs.c
> +++ b/arch/powerpc/kernel/eeh_sysfs.c
> @@ -48,7 +48,7 @@ static ssize_t eeh_show_##_name(struct device *dev,      \
>  	                                                      \
>  	return sprintf(buf, _format "\n", edev->_memb);       \
>  }                                                        \
> -static DEVICE_ATTR(_name, S_IRUGO, eeh_show_##_name, NULL);
> +static DEVICE_ATTR(_name, 0444, eeh_show_##_name, NULL);
>  
>  EEH_SHOW_ATTR(eeh_mode,            mode,            "0x%x");
>  EEH_SHOW_ATTR(eeh_config_addr,     config_addr,     "0x%x");
> diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
> index 5f202a566ec5..7ef279a0888e 100644
> --- a/arch/powerpc/kernel/iommu.c
> +++ b/arch/powerpc/kernel/iommu.c
> @@ -127,7 +127,7 @@ static ssize_t fail_iommu_store(struct device *dev,
>  	return count;
>  }
>  
> -static DEVICE_ATTR(fail_iommu, S_IRUGO|S_IWUSR, fail_iommu_show,
> +static DEVICE_ATTR(fail_iommu, 0644, fail_iommu_show,
>  		   fail_iommu_store);
>  
>  static int fail_iommu_bus_notify(struct notifier_block *nb,
> diff --git a/arch/powerpc/kernel/proc_powerpc.c b/arch/powerpc/kernel/proc_powerpc.c
> index 56548bf6231f..9bfbd800d32f 100644
> --- a/arch/powerpc/kernel/proc_powerpc.c
> +++ b/arch/powerpc/kernel/proc_powerpc.c
> @@ -63,7 +63,7 @@ static int __init proc_ppc64_init(void)
>  {
>  	struct proc_dir_entry *pde;
>  
> -	pde = proc_create_data("powerpc/systemcfg", S_IFREG|S_IRUGO, NULL,
> +	pde = proc_create_data("powerpc/systemcfg", S_IFREG | 0444, NULL,
>  			       &page_map_fops, vdso_data);
>  	if (!pde)
>  		return 1;
> diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c
> index df56dfc4b681..bb5e8cbcc553 100644
> --- a/arch/powerpc/kernel/rtas-proc.c
> +++ b/arch/powerpc/kernel/rtas-proc.c
> @@ -260,19 +260,19 @@ static int __init proc_rtas_init(void)
>  	if (rtas_node == NULL)
>  		return -ENODEV;
>  
> -	proc_create("powerpc/rtas/progress", S_IRUGO|S_IWUSR, NULL,
> +	proc_create("powerpc/rtas/progress", 0644, NULL,
>  		    &ppc_rtas_progress_operations);
> -	proc_create("powerpc/rtas/clock", S_IRUGO|S_IWUSR, NULL,
> +	proc_create("powerpc/rtas/clock", 0644, NULL,
>  		    &ppc_rtas_clock_operations);
> -	proc_create("powerpc/rtas/poweron", S_IWUSR|S_IRUGO, NULL,
> +	proc_create("powerpc/rtas/poweron", 0644, NULL,
>  		    &ppc_rtas_poweron_operations);
> -	proc_create("powerpc/rtas/sensors", S_IRUGO, NULL,
> +	proc_create("powerpc/rtas/sensors", 0444, NULL,
>  		    &ppc_rtas_sensors_operations);
> -	proc_create("powerpc/rtas/frequency", S_IWUSR|S_IRUGO, NULL,
> +	proc_create("powerpc/rtas/frequency", 0644, NULL,
>  		    &ppc_rtas_tone_freq_operations);
> -	proc_create("powerpc/rtas/volume", S_IWUSR|S_IRUGO, NULL,
> +	proc_create("powerpc/rtas/volume", 0644, NULL,
>  		    &ppc_rtas_tone_volume_operations);
> -	proc_create("powerpc/rtas/rmo_buffer", S_IRUSR, NULL,
> +	proc_create("powerpc/rtas/rmo_buffer", 0400, NULL,
>  		    &ppc_rtas_rmo_buf_ops);
>  	return 0;
>  }
> diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
> index f6f6a8a5103a..10fabae2574d 100644
> --- a/arch/powerpc/kernel/rtas_flash.c
> +++ b/arch/powerpc/kernel/rtas_flash.c
> @@ -727,7 +727,7 @@ static int __init rtas_flash_init(void)
>  		const struct rtas_flash_file *f = &rtas_flash_files[i];
>  		int token;
>  
> -		if (!proc_create(f->filename, S_IRUSR | S_IWUSR, NULL, &f->fops))
> +		if (!proc_create(f->filename, 0600, NULL, &f->fops))
>  			goto enomem;
>  
>  		/*
> diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c
> index 2bf1f9b5b34b..e144bd563929 100644
> --- a/arch/powerpc/kernel/rtasd.c
> +++ b/arch/powerpc/kernel/rtasd.c
> @@ -576,7 +576,7 @@ static int __init rtas_init(void)
>  	if (!rtas_log_buf)
>  		return -ENODEV;
>  
> -	entry = proc_create("powerpc/rtas/error_log", S_IRUSR, NULL,
> +	entry = proc_create("powerpc/rtas/error_log", 0400, NULL,
>  			    &proc_rtas_log_operations);
>  	if (!entry)
>  		printk(KERN_ERR "Failed to create error_log proc entry\n");
> diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
> index e6cc56b61d01..4b9240e4571f 100644
> --- a/arch/powerpc/kernel/traps.c
> +++ b/arch/powerpc/kernel/traps.c
> @@ -2039,13 +2039,13 @@ static int __init ppc_warn_emulated_init(void)
>  	if (!dir)
>  		return -ENOMEM;
>  
> -	d = debugfs_create_u32("do_warn", S_IRUGO | S_IWUSR, dir,
> +	d = debugfs_create_u32("do_warn", 0644, dir,
>  			       &ppc_warn_emulated);
>  	if (!d)
>  		goto fail;
>  
>  	for (i = 0; i < sizeof(ppc_emulated)/sizeof(*entries); i++) {
> -		d = debugfs_create_u32(entries[i].name, S_IRUGO | S_IWUSR, dir,
> +		d = debugfs_create_u32(entries[i].name, 0644, dir,
>  				       (u32 *)&entries[i].val.counter);
>  		if (!d)
>  			goto fail;
> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
> index ec34e39471a7..2da1501cc25f 100644
> --- a/arch/powerpc/kvm/book3s_hv.c
> +++ b/arch/powerpc/kvm/book3s_hv.c
> @@ -87,10 +87,10 @@
>  static DECLARE_BITMAP(default_enabled_hcalls, MAX_HCALL_OPCODE/4 + 1);
>  
>  static int dynamic_mt_modes = 6;
> -module_param(dynamic_mt_modes, int, S_IRUGO | S_IWUSR);
> +module_param(dynamic_mt_modes, int, 0644);
>  MODULE_PARM_DESC(dynamic_mt_modes, "Set of allowed dynamic micro-threading modes: 0 (= none), 2, 4, or 6 (= 2 or 4)");
>  static int target_smt_mode;
> -module_param(target_smt_mode, int, S_IRUGO | S_IWUSR);
> +module_param(target_smt_mode, int, 0644);
>  MODULE_PARM_DESC(target_smt_mode, "Target threads per core (0 = max)");
>  
>  #ifdef CONFIG_KVM_XICS
> @@ -99,12 +99,10 @@ static struct kernel_param_ops module_param_ops = {
>  	.get = param_get_int,
>  };
>  
> -module_param_cb(kvm_irq_bypass, &module_param_ops, &kvm_irq_bypass,
> -							S_IRUGO | S_IWUSR);
> +module_param_cb(kvm_irq_bypass, &module_param_ops, &kvm_irq_bypass, 0644);
>  MODULE_PARM_DESC(kvm_irq_bypass, "Bypass passthrough interrupt optimization");
>  
> -module_param_cb(h_ipi_redirect, &module_param_ops, &h_ipi_redirect,
> -							S_IRUGO | S_IWUSR);
> +module_param_cb(h_ipi_redirect, &module_param_ops, &h_ipi_redirect, 0644);
>  MODULE_PARM_DESC(h_ipi_redirect, "Redirect H_IPI wakeup to a free host core");
>  #endif
>  
> diff --git a/arch/powerpc/kvm/book3s_xics.c b/arch/powerpc/kvm/book3s_xics.c
> index 20dff102a06f..d30b6130b8ff 100644
> --- a/arch/powerpc/kvm/book3s_xics.c
> +++ b/arch/powerpc/kvm/book3s_xics.c
> @@ -1011,7 +1011,7 @@ static void xics_debugfs_init(struct kvmppc_xics *xics)
>  		return;
>  	}
>  
> -	xics->dentry = debugfs_create_file(name, S_IRUGO, powerpc_debugfs_root,
> +	xics->dentry = debugfs_create_file(name, 0444, powerpc_debugfs_root,
>  					   xics, &xics_debug_fops);
>  
>  	pr_debug("%s: created %s\n", __func__, name);
> diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
> index 63c5ab6489c9..c5c709e484c7 100644
> --- a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
> +++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
> @@ -84,7 +84,7 @@ static ssize_t show_status(struct device *d,
>  
>  	return sprintf(buf, "%02x\n", ret);
>  }
> -static DEVICE_ATTR(status, S_IRUGO, show_status, NULL);
> +static DEVICE_ATTR(status, 0444, show_status, NULL);
>  
>  static void mcu_power_off(void)
>  {
> diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
> index d8af9bc0489f..f682be2a48e6 100644
> --- a/arch/powerpc/platforms/cell/spufs/inode.c
> +++ b/arch/powerpc/platforms/cell/spufs/inode.c
> @@ -455,7 +455,7 @@ spufs_create_context(struct inode *inode, struct dentry *dentry,
>  		}
>  	}
>  
> -	ret = spufs_mkdir(inode, dentry, flags, mode & S_IRWXUGO);
> +	ret = spufs_mkdir(inode, dentry, flags, mode & 0777);
>  	if (ret)
>  		goto out_aff_unlock;
>  
> @@ -546,7 +546,7 @@ static int spufs_create_gang(struct inode *inode,
>  	struct path path = {.mnt = mnt, .dentry = dentry};
>  	int ret;
>  
> -	ret = spufs_mkgang(inode, dentry, mode & S_IRWXUGO);
> +	ret = spufs_mkgang(inode, dentry, mode & 0777);
>  	if (!ret) {
>  		ret = spufs_gang_open(&path);
>  		if (ret < 0) {
> diff --git a/arch/powerpc/platforms/powernv/opal-dump.c b/arch/powerpc/platforms/powernv/opal-dump.c
> index 4c827826c05e..0dc8fa4e0af2 100644
> --- a/arch/powerpc/platforms/powernv/opal-dump.c
> +++ b/arch/powerpc/platforms/powernv/opal-dump.c
> @@ -103,9 +103,9 @@ static ssize_t dump_ack_store(struct dump_obj *dump_obj,
>   * due to the dynamic size of the dump
>   */
>  static struct dump_attribute id_attribute =
> -	__ATTR(id, S_IRUGO, dump_id_show, NULL);
> +	__ATTR(id, 0444, dump_id_show, NULL);
>  static struct dump_attribute type_attribute =
> -	__ATTR(type, S_IRUGO, dump_type_show, NULL);
> +	__ATTR(type, 0444, dump_type_show, NULL);
>  static struct dump_attribute ack_attribute =
>  	__ATTR(acknowledge, 0660, dump_ack_show, dump_ack_store);
>  
> diff --git a/arch/powerpc/platforms/powernv/opal-elog.c b/arch/powerpc/platforms/powernv/opal-elog.c
> index ecd6d9177d13..ba6e437abb4b 100644
> --- a/arch/powerpc/platforms/powernv/opal-elog.c
> +++ b/arch/powerpc/platforms/powernv/opal-elog.c
> @@ -83,9 +83,9 @@ static ssize_t elog_ack_store(struct elog_obj *elog_obj,
>  }
>  
>  static struct elog_attribute id_attribute =
> -	__ATTR(id, S_IRUGO, elog_id_show, NULL);
> +	__ATTR(id, 0444, elog_id_show, NULL);
>  static struct elog_attribute type_attribute =
> -	__ATTR(type, S_IRUGO, elog_type_show, NULL);
> +	__ATTR(type, 0444, elog_type_show, NULL);
>  static struct elog_attribute ack_attribute =
>  	__ATTR(acknowledge, 0660, elog_ack_show, elog_ack_store);
>  
> diff --git a/arch/powerpc/platforms/powernv/opal-sysparam.c b/arch/powerpc/platforms/powernv/opal-sysparam.c
> index 23fb6647dced..6fd4092798d5 100644
> --- a/arch/powerpc/platforms/powernv/opal-sysparam.c
> +++ b/arch/powerpc/platforms/powernv/opal-sysparam.c
> @@ -260,13 +260,13 @@ void __init opal_sys_param_init(void)
>  		/* If the parameter is read-only or read-write */
>  		switch (perm[i] & 3) {
>  		case OPAL_SYSPARAM_READ:
> -			attr[i].kobj_attr.attr.mode = S_IRUGO;
> +			attr[i].kobj_attr.attr.mode = 0444;
>  			break;
>  		case OPAL_SYSPARAM_WRITE:
> -			attr[i].kobj_attr.attr.mode = S_IWUSR;
> +			attr[i].kobj_attr.attr.mode = 0200;
>  			break;
>  		case OPAL_SYSPARAM_RW:
> -			attr[i].kobj_attr.attr.mode = S_IRUGO | S_IWUSR;
> +			attr[i].kobj_attr.attr.mode = 0644;
>  			break;
>  		default:
>  			break;
> diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c
> index 4839db385bb0..6406c61a6f5e 100644
> --- a/arch/powerpc/platforms/pseries/cmm.c
> +++ b/arch/powerpc/platforms/pseries/cmm.c
> @@ -72,20 +72,20 @@ MODULE_DESCRIPTION("IBM System p Collaborative Memory Manager");
>  MODULE_LICENSE("GPL");
>  MODULE_VERSION(CMM_DRIVER_VERSION);
>  
> -module_param_named(delay, delay, uint, S_IRUGO | S_IWUSR);
> +module_param_named(delay, delay, uint, 0644);
>  MODULE_PARM_DESC(delay, "Delay (in seconds) between polls to query hypervisor paging requests. "
>  		 "[Default=" __stringify(CMM_DEFAULT_DELAY) "]");
> -module_param_named(hotplug_delay, hotplug_delay, uint, S_IRUGO | S_IWUSR);
> +module_param_named(hotplug_delay, hotplug_delay, uint, 0644);
>  MODULE_PARM_DESC(delay, "Delay (in seconds) after memory hotplug remove "
>  		 "before loaning resumes. "
>  		 "[Default=" __stringify(CMM_HOTPLUG_DELAY) "]");
> -module_param_named(oom_kb, oom_kb, uint, S_IRUGO | S_IWUSR);
> +module_param_named(oom_kb, oom_kb, uint, 0644);
>  MODULE_PARM_DESC(oom_kb, "Amount of memory in kb to free on OOM. "
>  		 "[Default=" __stringify(CMM_OOM_KB) "]");
> -module_param_named(min_mem_mb, min_mem_mb, ulong, S_IRUGO | S_IWUSR);
> +module_param_named(min_mem_mb, min_mem_mb, ulong, 0644);
>  MODULE_PARM_DESC(min_mem_mb, "Minimum amount of memory (in MB) to not balloon. "
>  		 "[Default=" __stringify(CMM_MIN_MEM_MB) "]");
> -module_param_named(debug, cmm_debug, uint, S_IRUGO | S_IWUSR);
> +module_param_named(debug, cmm_debug, uint, 0644);
>  MODULE_PARM_DESC(debug, "Enable module debugging logging. Set to 1 to enable. "
>  		 "[Default=" __stringify(CMM_DEBUG) "]");
>  
> @@ -385,7 +385,7 @@ static int cmm_thread(void *dummy)
>  	{							\
>  		return sprintf(buf, format, ##args);		\
>  	}							\
> -	static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL)
> +	static DEVICE_ATTR(name, 0444, show_##name, NULL)
>  
>  CMM_SHOW(loaned_kb, "%lu\n", PAGES2KB(loaned_pages));
>  CMM_SHOW(loaned_target_kb, "%lu\n", PAGES2KB(loaned_pages_target));
> @@ -411,7 +411,7 @@ static ssize_t store_oom_pages(struct device *dev,
>  	return count;
>  }
>  
> -static DEVICE_ATTR(oom_freed_kb, S_IWUSR | S_IRUGO,
> +static DEVICE_ATTR(oom_freed_kb, 0644,
>  		   show_oom_pages, store_oom_pages);
>  
>  static struct device_attribute *cmm_attrs[] = {
> @@ -765,7 +765,7 @@ static int cmm_set_disable(const char *val, struct kernel_param *kp)
>  }
>  
>  module_param_call(disable, cmm_set_disable, param_get_uint,
> -		  &cmm_disabled, S_IRUGO | S_IWUSR);
> +		  &cmm_disabled, 0644);
>  MODULE_PARM_DESC(disable, "Disable CMM. Set to 1 to disable. "
>  		 "[Default=" __stringify(CMM_DISABLE) "]");
>  
> diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
> index 5cb2e4beffc5..fc0b1b80972d 100644
> --- a/arch/powerpc/platforms/pseries/dlpar.c
> +++ b/arch/powerpc/platforms/pseries/dlpar.c
> @@ -551,7 +551,7 @@ static ssize_t dlpar_store(struct class *class, struct class_attribute *attr,
>  	return rc ? rc : count;
>  }
>  
> -static CLASS_ATTR(dlpar, S_IWUSR, NULL, dlpar_store);
> +static CLASS_ATTR(dlpar, 0200, NULL, dlpar_store);
>  
>  static int __init pseries_dlpar_init(void)
>  {
> diff --git a/arch/powerpc/platforms/pseries/hvCall_inst.c b/arch/powerpc/platforms/pseries/hvCall_inst.c
> index f02ec3ab428c..fea432d88cad 100644
> --- a/arch/powerpc/platforms/pseries/hvCall_inst.c
> +++ b/arch/powerpc/platforms/pseries/hvCall_inst.c
> @@ -153,7 +153,7 @@ static int __init hcall_inst_init(void)
>  
>  	for_each_possible_cpu(cpu) {
>  		snprintf(cpu_name_buf, CPU_NAME_BUF_SIZE, "cpu%d", cpu);
> -		hcall_file = debugfs_create_file(cpu_name_buf, S_IRUGO,
> +		hcall_file = debugfs_create_file(cpu_name_buf, 0444,
>  						 hcall_root,
>  						 per_cpu(hcall_stats, cpu),
>  						 &hcall_inst_seq_fops);
> diff --git a/arch/powerpc/platforms/pseries/ibmebus.c b/arch/powerpc/platforms/pseries/ibmebus.c
> index 614c28537141..f67f5aa71653 100644
> --- a/arch/powerpc/platforms/pseries/ibmebus.c
> +++ b/arch/powerpc/platforms/pseries/ibmebus.c
> @@ -299,7 +299,7 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus,
>  		return rc;
>  	return count;
>  }
> -static BUS_ATTR(probe, S_IWUSR, NULL, ibmebus_store_probe);
> +static BUS_ATTR(probe, 0200, NULL, ibmebus_store_probe);
>  
>  static ssize_t ibmebus_store_remove(struct bus_type *bus,
>  				    const char *buf, size_t count)
> @@ -326,7 +326,7 @@ static ssize_t ibmebus_store_remove(struct bus_type *bus,
>  		return -ENODEV;
>  	}
>  }
> -static BUS_ATTR(remove, S_IWUSR, NULL, ibmebus_store_remove);
> +static BUS_ATTR(remove, 0200, NULL, ibmebus_store_remove);
>  
>  static struct attribute *ibmbus_bus_attrs[] = {
>  	&bus_attr_probe.attr,
> diff --git a/arch/powerpc/platforms/pseries/lparcfg.c b/arch/powerpc/platforms/pseries/lparcfg.c
> index 779fc2a1c8f7..aea4ce11a9eb 100644
> --- a/arch/powerpc/platforms/pseries/lparcfg.c
> +++ b/arch/powerpc/platforms/pseries/lparcfg.c
> @@ -697,11 +697,11 @@ static const struct file_operations lparcfg_fops = {
>  
>  static int __init lparcfg_init(void)
>  {
> -	umode_t mode = S_IRUSR | S_IRGRP | S_IROTH;
> +	umode_t mode = 0444;
>  
>  	/* Allow writing if we have FW_FEATURE_SPLPAR */
>  	if (firmware_has_feature(FW_FEATURE_SPLPAR))
> -		mode |= S_IWUSR;
> +		mode |= 0200;
>  
>  	if (!proc_create("powerpc/lparcfg", mode, NULL, &lparcfg_fops)) {
>  		printk(KERN_ERR "Failed to create powerpc/lparcfg\n");
> diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c
> index a560a98bcf3b..6a5f140bb8b8 100644
> --- a/arch/powerpc/platforms/pseries/mobility.c
> +++ b/arch/powerpc/platforms/pseries/mobility.c
> @@ -346,8 +346,8 @@ static ssize_t migrate_store(struct class *class, struct class_attribute *attr,
>   */
>  #define MIGRATION_API_VERSION	1
>  
> -static CLASS_ATTR(migration, S_IWUSR, NULL, migrate_store);
> -static CLASS_ATTR_STRING(api_version, S_IRUGO, __stringify(MIGRATION_API_VERSION));
> +static CLASS_ATTR(migration, 0200, NULL, migrate_store);
> +static CLASS_ATTR_STRING(api_version, 0444, __stringify(MIGRATION_API_VERSION));
>  
>  static int __init mobility_sysfs_init(void)
>  {
> diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c
> index e5bf1e84047f..f926da2a7116 100644
> --- a/arch/powerpc/platforms/pseries/reconfig.c
> +++ b/arch/powerpc/platforms/pseries/reconfig.c
> @@ -413,7 +413,7 @@ static int proc_ppc64_create_ofdt(void)
>  {
>  	struct proc_dir_entry *ent;
>  
> -	ent = proc_create("powerpc/ofdt", S_IWUSR, NULL, &ofdt_fops);
> +	ent = proc_create("powerpc/ofdt", 0200, NULL, &ofdt_fops);
>  	if (ent)
>  		proc_set_size(ent, 0);
>  
> diff --git a/arch/powerpc/platforms/pseries/scanlog.c b/arch/powerpc/platforms/pseries/scanlog.c
> index c47585a78b69..054ce7a16fc3 100644
> --- a/arch/powerpc/platforms/pseries/scanlog.c
> +++ b/arch/powerpc/platforms/pseries/scanlog.c
> @@ -179,7 +179,7 @@ static int __init scanlog_init(void)
>  	if (!scanlog_buffer)
>  		goto err;
>  
> -	ent = proc_create("powerpc/rtas/scan-log-dump", S_IRUSR, NULL,
> +	ent = proc_create("powerpc/rtas/scan-log-dump", 0400, NULL,
>  			  &scanlog_fops);
>  	if (!ent)
>  		goto err;
> diff --git a/arch/powerpc/platforms/pseries/suspend.c b/arch/powerpc/platforms/pseries/suspend.c
> index e76aefae2aa2..6dfa2eacba49 100644
> --- a/arch/powerpc/platforms/pseries/suspend.c
> +++ b/arch/powerpc/platforms/pseries/suspend.c
> @@ -214,8 +214,7 @@ static ssize_t show_hibernate(struct device *dev,
>  	return sprintf(buf, "%d\n", KERN_DT_UPDATE);
>  }
>  
> -static DEVICE_ATTR(hibernate, S_IWUSR | S_IRUGO,
> -		   show_hibernate, store_hibernate);
> +static DEVICE_ATTR(hibernate, 0644, show_hibernate, store_hibernate);
>  
>  static struct bus_type suspend_subsys = {
>  	.name = "power",
> diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c
> index 2c8fb3ec989e..bc25c2cbc17e 100644
> --- a/arch/powerpc/platforms/pseries/vio.c
> +++ b/arch/powerpc/platforms/pseries/vio.c
> @@ -997,11 +997,11 @@ static struct device_attribute vio_cmo_dev_attrs[] = {
>  	__ATTR_RO(name),
>  	__ATTR_RO(devspec),
>  	__ATTR_RO(modalias),
> -	__ATTR(cmo_desired,       S_IWUSR|S_IRUSR|S_IWGRP|S_IRGRP|S_IROTH,
> +	__ATTR(cmo_desired,       0664,
>  	       viodev_cmo_desired_show, viodev_cmo_desired_set),
> -	__ATTR(cmo_entitled,      S_IRUGO, viodev_cmo_entitled_show,      NULL),
> -	__ATTR(cmo_allocated,     S_IRUGO, viodev_cmo_allocated_show,     NULL),
> -	__ATTR(cmo_allocs_failed, S_IWUSR|S_IRUSR|S_IWGRP|S_IRGRP|S_IROTH,
> +	__ATTR(cmo_entitled,      0444, viodev_cmo_entitled_show,      NULL),
> +	__ATTR(cmo_allocated,     0444, viodev_cmo_allocated_show,     NULL),
> +	__ATTR(cmo_allocs_failed, 0664,
>  	       viodev_cmo_allocs_failed_show, viodev_cmo_allocs_failed_reset),
>  	__ATTR_NULL
>  };
> diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c
> index ada29eaed6e2..0cff5c8478cd 100644
> --- a/arch/powerpc/sysdev/axonram.c
> +++ b/arch/powerpc/sysdev/axonram.c
> @@ -80,7 +80,7 @@ axon_ram_sysfs_ecc(struct device *dev, struct device_attribute *attr, char *buf)
>  	return sprintf(buf, "%ld\n", bank->ecc_counter);
>  }
>  
> -static DEVICE_ATTR(ecc, S_IRUGO, axon_ram_sysfs_ecc, NULL);
> +static DEVICE_ATTR(ecc, 0444, axon_ram_sysfs_ecc, NULL);
>  
>  /**
>   * axon_ram_irq_handler - interrupt handler for Axon RAM ECC
> diff --git a/arch/powerpc/sysdev/mv64x60_pci.c b/arch/powerpc/sysdev/mv64x60_pci.c
> index 330d56613c5a..b06d1b7c262f 100644
> --- a/arch/powerpc/sysdev/mv64x60_pci.c
> +++ b/arch/powerpc/sysdev/mv64x60_pci.c
> @@ -73,7 +73,7 @@ static ssize_t mv64x60_hs_reg_write(struct file *filp, struct kobject *kobj,
>  static struct bin_attribute mv64x60_hs_reg_attr = { /* Hotswap register */
>  	.attr = {
>  		.name = "hs_reg",
> -		.mode = S_IRUGO | S_IWUSR,
> +		.mode = 0644,
>  	},
>  	.size  = MV64X60_VAL_LEN_MAX,
>  	.read  = mv64x60_hs_reg_read,


More information about the Linuxppc-dev mailing list