Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

w1: w1_therm: Rename conflicting sysfs attribute 'eeprom' to 'eeprom_cmd'

Duplicate attribute 'eeprom' is defined in:
1) Documentation/ABI/testing/sysfs-driver-w1_therm
2) Documentation/ABI/stable/sysfs-driver-w1_ds28e04

Both drivers define an attribute: /sys/bus/w1/devices/.../eeprom
with conflicting behavior.

Fix by renaming the newer one in w1_therm.c to 'eeprom_cmd'.

Reported-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/lkml/20201029152845.6bbb39ce@coco.lan/
Signed-off-by: Ivan Zaentsev <ivan.zaentsev@wirenboard.ru>
Link: https://lore.kernel.org/r/20201112064931.8471-1-ivan.zaentsev@wirenboard.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Ivan Zaentsev and committed by
Greg Kroah-Hartman
439e8f6f 1987f112

+8 -8
+1 -1
Documentation/ABI/testing/sysfs-driver-w1_therm
··· 14 14 w1_term device 15 15 16 16 17 - What: /sys/bus/w1/devices/.../eeprom 17 + What: /sys/bus/w1/devices/.../eeprom_cmd 18 18 Date: May 2020 19 19 Contact: Akira Shimahara <akira215corp@gmail.com> 20 20 Description:
+1 -1
Documentation/w1/slaves/w1_therm.rst
··· 82 82 83 83 Note: Changing the resolution reverts the conversion time to default. 84 84 85 - The write-only sysfs entry ``eeprom`` is an alternative for EEPROM operations. 85 + The write-only sysfs entry ``eeprom_cmd`` is an alternative for EEPROM operations. 86 86 Write ``save`` to save device RAM to EEPROM. Write ``restore`` to restore EEPROM 87 87 data in device RAM. 88 88
+6 -6
drivers/w1/slaves/w1_therm.c
··· 315 315 static ssize_t resolution_store(struct device *device, 316 316 struct device_attribute *attr, const char *buf, size_t size); 317 317 318 - static ssize_t eeprom_store(struct device *device, 318 + static ssize_t eeprom_cmd_store(struct device *device, 319 319 struct device_attribute *attr, const char *buf, size_t size); 320 320 321 321 static ssize_t alarms_store(struct device *device, ··· 350 350 static DEVICE_ATTR_RO(temperature); 351 351 static DEVICE_ATTR_RO(ext_power); 352 352 static DEVICE_ATTR_RW(resolution); 353 - static DEVICE_ATTR_WO(eeprom); 353 + static DEVICE_ATTR_WO(eeprom_cmd); 354 354 static DEVICE_ATTR_RW(alarms); 355 355 static DEVICE_ATTR_RW(conv_time); 356 356 static DEVICE_ATTR_RW(features); ··· 386 386 &dev_attr_temperature.attr, 387 387 &dev_attr_ext_power.attr, 388 388 &dev_attr_resolution.attr, 389 - &dev_attr_eeprom.attr, 389 + &dev_attr_eeprom_cmd.attr, 390 390 &dev_attr_alarms.attr, 391 391 &dev_attr_conv_time.attr, 392 392 &dev_attr_features.attr, ··· 397 397 &dev_attr_w1_slave.attr, 398 398 &dev_attr_temperature.attr, 399 399 &dev_attr_ext_power.attr, 400 - &dev_attr_eeprom.attr, 400 + &dev_attr_eeprom_cmd.attr, 401 401 &dev_attr_alarms.attr, 402 402 &dev_attr_conv_time.attr, 403 403 &dev_attr_features.attr, ··· 410 410 &dev_attr_temperature.attr, 411 411 &dev_attr_ext_power.attr, 412 412 &dev_attr_resolution.attr, 413 - &dev_attr_eeprom.attr, 413 + &dev_attr_eeprom_cmd.attr, 414 414 &dev_attr_alarms.attr, 415 415 &dev_attr_conv_time.attr, 416 416 &dev_attr_features.attr, ··· 1740 1740 return size; 1741 1741 } 1742 1742 1743 - static ssize_t eeprom_store(struct device *device, 1743 + static ssize_t eeprom_cmd_store(struct device *device, 1744 1744 struct device_attribute *attr, const char *buf, size_t size) 1745 1745 { 1746 1746 struct w1_slave *sl = dev_to_w1_slave(device);