|
|
@@ -415,10 +415,17 @@ static int nvmem_setup_compat(struct nvmem_device *nvmem,
|
|
|
if (!config->base_dev)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- if (nvmem->read_only)
|
|
|
- nvmem->eeprom = bin_attr_ro_root_nvmem;
|
|
|
- else
|
|
|
- nvmem->eeprom = bin_attr_rw_root_nvmem;
|
|
|
+ if (nvmem->read_only) {
|
|
|
+ if (config->root_only)
|
|
|
+ nvmem->eeprom = bin_attr_ro_root_nvmem;
|
|
|
+ else
|
|
|
+ nvmem->eeprom = bin_attr_ro_nvmem;
|
|
|
+ } else {
|
|
|
+ if (config->root_only)
|
|
|
+ nvmem->eeprom = bin_attr_rw_root_nvmem;
|
|
|
+ else
|
|
|
+ nvmem->eeprom = bin_attr_rw_nvmem;
|
|
|
+ }
|
|
|
nvmem->eeprom.attr.name = "eeprom";
|
|
|
nvmem->eeprom.size = nvmem->size;
|
|
|
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|