Commit 57ad583f authored by Russell Currey's avatar Russell Currey Committed by Michael Ellerman

powerpc: Use octal numbers for file permissions

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: default avatarRussell Currey <ruscur@russell.cc>
Reviewed-by: default avatarCyril Bur <cyrilbur@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 600ecc19
...@@ -48,7 +48,7 @@ static ssize_t eeh_show_##_name(struct device *dev, \ ...@@ -48,7 +48,7 @@ static ssize_t eeh_show_##_name(struct device *dev, \
\ \
return sprintf(buf, _format "\n", edev->_memb); \ 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_mode, mode, "0x%x");
EEH_SHOW_ATTR(eeh_pe_config_addr, pe_config_addr, "0x%x"); EEH_SHOW_ATTR(eeh_pe_config_addr, pe_config_addr, "0x%x");
......
...@@ -63,7 +63,7 @@ static int __init proc_ppc64_init(void) ...@@ -63,7 +63,7 @@ static int __init proc_ppc64_init(void)
{ {
struct proc_dir_entry *pde; 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); &page_map_fops, vdso_data);
if (!pde) if (!pde)
return 1; return 1;
......
...@@ -261,19 +261,19 @@ static int __init proc_rtas_init(void) ...@@ -261,19 +261,19 @@ static int __init proc_rtas_init(void)
if (rtas_node == NULL) if (rtas_node == NULL)
return -ENODEV; return -ENODEV;
proc_create("powerpc/rtas/progress", S_IRUGO|S_IWUSR, NULL, proc_create("powerpc/rtas/progress", 0644, NULL,
&ppc_rtas_progress_operations); &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); &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); &ppc_rtas_poweron_operations);
proc_create("powerpc/rtas/sensors", S_IRUGO, NULL, proc_create("powerpc/rtas/sensors", 0444, NULL,
&ppc_rtas_sensors_operations); &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); &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); &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); &ppc_rtas_rmo_buf_ops);
return 0; return 0;
} }
......
...@@ -727,7 +727,7 @@ static int __init rtas_flash_init(void) ...@@ -727,7 +727,7 @@ static int __init rtas_flash_init(void)
const struct rtas_flash_file *f = &rtas_flash_files[i]; const struct rtas_flash_file *f = &rtas_flash_files[i];
int token; 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; goto enomem;
/* /*
......
...@@ -581,7 +581,7 @@ static int __init rtas_init(void) ...@@ -581,7 +581,7 @@ static int __init rtas_init(void)
if (!rtas_log_buf) if (!rtas_log_buf)
return -ENODEV; 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); &proc_rtas_log_operations);
if (!entry) if (!entry)
printk(KERN_ERR "Failed to create error_log proc entry\n"); printk(KERN_ERR "Failed to create error_log proc entry\n");
......
...@@ -2130,13 +2130,13 @@ static int __init ppc_warn_emulated_init(void) ...@@ -2130,13 +2130,13 @@ static int __init ppc_warn_emulated_init(void)
if (!dir) if (!dir)
return -ENOMEM; return -ENOMEM;
d = debugfs_create_u32("do_warn", S_IRUGO | S_IWUSR, dir, d = debugfs_create_u32("do_warn", 0644, dir,
&ppc_warn_emulated); &ppc_warn_emulated);
if (!d) if (!d)
goto fail; goto fail;
for (i = 0; i < sizeof(ppc_emulated)/sizeof(*entries); i++) { 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); (u32 *)&entries[i].val.counter);
if (!d) if (!d)
goto fail; goto fail;
......
...@@ -93,10 +93,10 @@ ...@@ -93,10 +93,10 @@
static DECLARE_BITMAP(default_enabled_hcalls, MAX_HCALL_OPCODE/4 + 1); static DECLARE_BITMAP(default_enabled_hcalls, MAX_HCALL_OPCODE/4 + 1);
static int dynamic_mt_modes = 6; 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)"); 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; 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)"); MODULE_PARM_DESC(target_smt_mode, "Target threads per core (0 = max)");
static bool indep_threads_mode = true; static bool indep_threads_mode = true;
...@@ -109,12 +109,10 @@ static struct kernel_param_ops module_param_ops = { ...@@ -109,12 +109,10 @@ static struct kernel_param_ops module_param_ops = {
.get = param_get_int, .get = param_get_int,
}; };
module_param_cb(kvm_irq_bypass, &module_param_ops, &kvm_irq_bypass, module_param_cb(kvm_irq_bypass, &module_param_ops, &kvm_irq_bypass, 0644);
S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(kvm_irq_bypass, "Bypass passthrough interrupt optimization"); MODULE_PARM_DESC(kvm_irq_bypass, "Bypass passthrough interrupt optimization");
module_param_cb(h_ipi_redirect, &module_param_ops, &h_ipi_redirect, module_param_cb(h_ipi_redirect, &module_param_ops, &h_ipi_redirect, 0644);
S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(h_ipi_redirect, "Redirect H_IPI wakeup to a free host core"); MODULE_PARM_DESC(h_ipi_redirect, "Redirect H_IPI wakeup to a free host core");
#endif #endif
......
...@@ -1039,7 +1039,7 @@ static void xics_debugfs_init(struct kvmppc_xics *xics) ...@@ -1039,7 +1039,7 @@ static void xics_debugfs_init(struct kvmppc_xics *xics)
return; 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); xics, &xics_debug_fops);
pr_debug("%s: created %s\n", __func__, name); pr_debug("%s: created %s\n", __func__, name);
......
...@@ -84,7 +84,7 @@ static ssize_t show_status(struct device *d, ...@@ -84,7 +84,7 @@ static ssize_t show_status(struct device *d,
return sprintf(buf, "%02x\n", ret); 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) static void mcu_power_off(void)
{ {
......
...@@ -455,7 +455,7 @@ spufs_create_context(struct inode *inode, struct dentry *dentry, ...@@ -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) if (ret)
goto out_aff_unlock; goto out_aff_unlock;
...@@ -546,7 +546,7 @@ static int spufs_create_gang(struct inode *inode, ...@@ -546,7 +546,7 @@ static int spufs_create_gang(struct inode *inode,
struct path path = {.mnt = mnt, .dentry = dentry}; struct path path = {.mnt = mnt, .dentry = dentry};
int ret; int ret;
ret = spufs_mkgang(inode, dentry, mode & S_IRWXUGO); ret = spufs_mkgang(inode, dentry, mode & 0777);
if (!ret) { if (!ret) {
ret = spufs_gang_open(&path); ret = spufs_gang_open(&path);
if (ret < 0) { if (ret < 0) {
......
...@@ -103,9 +103,9 @@ static ssize_t dump_ack_store(struct dump_obj *dump_obj, ...@@ -103,9 +103,9 @@ static ssize_t dump_ack_store(struct dump_obj *dump_obj,
* due to the dynamic size of the dump * due to the dynamic size of the dump
*/ */
static struct dump_attribute id_attribute = 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 = 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 = static struct dump_attribute ack_attribute =
__ATTR(acknowledge, 0660, dump_ack_show, dump_ack_store); __ATTR(acknowledge, 0660, dump_ack_show, dump_ack_store);
......
...@@ -83,9 +83,9 @@ static ssize_t elog_ack_store(struct elog_obj *elog_obj, ...@@ -83,9 +83,9 @@ static ssize_t elog_ack_store(struct elog_obj *elog_obj,
} }
static struct elog_attribute id_attribute = 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 = 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 = static struct elog_attribute ack_attribute =
__ATTR(acknowledge, 0660, elog_ack_show, elog_ack_store); __ATTR(acknowledge, 0660, elog_ack_show, elog_ack_store);
......
...@@ -260,13 +260,13 @@ void __init opal_sys_param_init(void) ...@@ -260,13 +260,13 @@ void __init opal_sys_param_init(void)
/* If the parameter is read-only or read-write */ /* If the parameter is read-only or read-write */
switch (perm[i] & 3) { switch (perm[i] & 3) {
case OPAL_SYSPARAM_READ: case OPAL_SYSPARAM_READ:
attr[i].kobj_attr.attr.mode = S_IRUGO; attr[i].kobj_attr.attr.mode = 0444;
break; break;
case OPAL_SYSPARAM_WRITE: case OPAL_SYSPARAM_WRITE:
attr[i].kobj_attr.attr.mode = S_IWUSR; attr[i].kobj_attr.attr.mode = 0200;
break; break;
case OPAL_SYSPARAM_RW: case OPAL_SYSPARAM_RW:
attr[i].kobj_attr.attr.mode = S_IRUGO | S_IWUSR; attr[i].kobj_attr.attr.mode = 0644;
break; break;
default: default:
break; break;
......
...@@ -72,20 +72,20 @@ MODULE_DESCRIPTION("IBM System p Collaborative Memory Manager"); ...@@ -72,20 +72,20 @@ MODULE_DESCRIPTION("IBM System p Collaborative Memory Manager");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_VERSION(CMM_DRIVER_VERSION); 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. " MODULE_PARM_DESC(delay, "Delay (in seconds) between polls to query hypervisor paging requests. "
"[Default=" __stringify(CMM_DEFAULT_DELAY) "]"); "[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(hotplug_delay, "Delay (in seconds) after memory hotplug remove " MODULE_PARM_DESC(hotplug_delay, "Delay (in seconds) after memory hotplug remove "
"before loaning resumes. " "before loaning resumes. "
"[Default=" __stringify(CMM_HOTPLUG_DELAY) "]"); "[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. " MODULE_PARM_DESC(oom_kb, "Amount of memory in kb to free on OOM. "
"[Default=" __stringify(CMM_OOM_KB) "]"); "[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. " MODULE_PARM_DESC(min_mem_mb, "Minimum amount of memory (in MB) to not balloon. "
"[Default=" __stringify(CMM_MIN_MEM_MB) "]"); "[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. " MODULE_PARM_DESC(debug, "Enable module debugging logging. Set to 1 to enable. "
"[Default=" __stringify(CMM_DEBUG) "]"); "[Default=" __stringify(CMM_DEBUG) "]");
...@@ -385,7 +385,7 @@ static int cmm_thread(void *dummy) ...@@ -385,7 +385,7 @@ static int cmm_thread(void *dummy)
{ \ { \
return sprintf(buf, format, ##args); \ 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_kb, "%lu\n", PAGES2KB(loaned_pages));
CMM_SHOW(loaned_target_kb, "%lu\n", PAGES2KB(loaned_pages_target)); CMM_SHOW(loaned_target_kb, "%lu\n", PAGES2KB(loaned_pages_target));
...@@ -411,7 +411,7 @@ static ssize_t store_oom_pages(struct device *dev, ...@@ -411,7 +411,7 @@ static ssize_t store_oom_pages(struct device *dev,
return count; 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); show_oom_pages, store_oom_pages);
static struct device_attribute *cmm_attrs[] = { static struct device_attribute *cmm_attrs[] = {
...@@ -765,7 +765,7 @@ static int cmm_set_disable(const char *val, const struct kernel_param *kp) ...@@ -765,7 +765,7 @@ static int cmm_set_disable(const char *val, const struct kernel_param *kp)
} }
module_param_call(disable, cmm_set_disable, param_get_uint, 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. " MODULE_PARM_DESC(disable, "Disable CMM. Set to 1 to disable. "
"[Default=" __stringify(CMM_DISABLE) "]"); "[Default=" __stringify(CMM_DISABLE) "]");
......
...@@ -163,7 +163,7 @@ static int __init hcall_inst_init(void) ...@@ -163,7 +163,7 @@ static int __init hcall_inst_init(void)
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
snprintf(cpu_name_buf, CPU_NAME_BUF_SIZE, "cpu%d", 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, hcall_root,
per_cpu(hcall_stats, cpu), per_cpu(hcall_stats, cpu),
&hcall_inst_seq_fops); &hcall_inst_seq_fops);
......
...@@ -298,7 +298,7 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus, ...@@ -298,7 +298,7 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus,
return rc; return rc;
return count; 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, static ssize_t ibmebus_store_remove(struct bus_type *bus,
const char *buf, size_t count) const char *buf, size_t count)
...@@ -325,7 +325,7 @@ static ssize_t ibmebus_store_remove(struct bus_type *bus, ...@@ -325,7 +325,7 @@ static ssize_t ibmebus_store_remove(struct bus_type *bus,
return -ENODEV; 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[] = { static struct attribute *ibmbus_bus_attrs[] = {
&bus_attr_probe.attr, &bus_attr_probe.attr,
......
...@@ -697,11 +697,11 @@ static const struct file_operations lparcfg_fops = { ...@@ -697,11 +697,11 @@ static const struct file_operations lparcfg_fops = {
static int __init lparcfg_init(void) 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 */ /* Allow writing if we have FW_FEATURE_SPLPAR */
if (firmware_has_feature(FW_FEATURE_SPLPAR)) if (firmware_has_feature(FW_FEATURE_SPLPAR))
mode |= S_IWUSR; mode |= 0200;
if (!proc_create("powerpc/lparcfg", mode, NULL, &lparcfg_fops)) { if (!proc_create("powerpc/lparcfg", mode, NULL, &lparcfg_fops)) {
printk(KERN_ERR "Failed to create powerpc/lparcfg\n"); printk(KERN_ERR "Failed to create powerpc/lparcfg\n");
......
...@@ -384,7 +384,7 @@ static ssize_t migration_store(struct class *class, ...@@ -384,7 +384,7 @@ static ssize_t migration_store(struct class *class,
#define MIGRATION_API_VERSION 1 #define MIGRATION_API_VERSION 1
static CLASS_ATTR_WO(migration); static CLASS_ATTR_WO(migration);
static CLASS_ATTR_STRING(api_version, S_IRUGO, __stringify(MIGRATION_API_VERSION)); static CLASS_ATTR_STRING(api_version, 0444, __stringify(MIGRATION_API_VERSION));
static int __init mobility_sysfs_init(void) static int __init mobility_sysfs_init(void)
{ {
......
...@@ -405,7 +405,7 @@ static int proc_ppc64_create_ofdt(void) ...@@ -405,7 +405,7 @@ static int proc_ppc64_create_ofdt(void)
{ {
struct proc_dir_entry *ent; 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) if (ent)
proc_set_size(ent, 0); proc_set_size(ent, 0);
......
...@@ -179,7 +179,7 @@ static int __init scanlog_init(void) ...@@ -179,7 +179,7 @@ static int __init scanlog_init(void)
if (!scanlog_buffer) if (!scanlog_buffer)
goto err; 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); &scanlog_fops);
if (!ent) if (!ent)
goto err; goto err;
......
...@@ -214,8 +214,7 @@ static ssize_t show_hibernate(struct device *dev, ...@@ -214,8 +214,7 @@ static ssize_t show_hibernate(struct device *dev,
return sprintf(buf, "%d\n", KERN_DT_UPDATE); return sprintf(buf, "%d\n", KERN_DT_UPDATE);
} }
static DEVICE_ATTR(hibernate, S_IWUSR | S_IRUGO, static DEVICE_ATTR(hibernate, 0644, show_hibernate, store_hibernate);
show_hibernate, store_hibernate);
static struct bus_type suspend_subsys = { static struct bus_type suspend_subsys = {
.name = "power", .name = "power",
......
...@@ -83,7 +83,7 @@ axon_ram_sysfs_ecc(struct device *dev, struct device_attribute *attr, char *buf) ...@@ -83,7 +83,7 @@ axon_ram_sysfs_ecc(struct device *dev, struct device_attribute *attr, char *buf)
return sprintf(buf, "%ld\n", bank->ecc_counter); 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 * axon_ram_irq_handler - interrupt handler for Axon RAM ECC
......
...@@ -73,7 +73,7 @@ static ssize_t mv64x60_hs_reg_write(struct file *filp, struct kobject *kobj, ...@@ -73,7 +73,7 @@ static ssize_t mv64x60_hs_reg_write(struct file *filp, struct kobject *kobj,
static const struct bin_attribute mv64x60_hs_reg_attr = { /* Hotswap register */ static const struct bin_attribute mv64x60_hs_reg_attr = { /* Hotswap register */
.attr = { .attr = {
.name = "hs_reg", .name = "hs_reg",
.mode = S_IRUGO | S_IWUSR, .mode = 0644,
}, },
.size = MV64X60_VAL_LEN_MAX, .size = MV64X60_VAL_LEN_MAX,
.read = mv64x60_hs_reg_read, .read = mv64x60_hs_reg_read,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment