History

hwmon: (sysfs) Allow drivers to register const attributes

Switch to the __DEVICE_ATTR() macro which can handle callbacks taking both const and non-const attribute structure arguments. Allow the step-wise migration of the drivers. Also use container_of_const() over container_of() to avoid casting away the constness accidentally.

Thomas Weißschuh committed 3 months ago

Commit 87fdc8d1 parent 52fcdd52 files · +10 −10Browse files

Showing the changes to include (1 of 2 files). Show all

Unified · Split

include/linux/hwmon-sysfs.h+7−7
@@ -15,10 +15,10 @@ struct sensor_device_attribute{ · 14 unmodified lines
1515 int index;
1616 };
1717 #define to_sensor_dev_attr(_dev_attr) \
18− container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
18+ container_of_const(_dev_attr, struct sensor_device_attribute, dev_attr)
1919
20−#define SENSOR_ATTR(_name, _mode, _show, _store, _index) \
21− { .dev_attr = __ATTR(_name, _mode, _show, _store), \
20+#define SENSOR_ATTR(_name, _mode, _show, _store, _index) \
21+ { .dev_attr = __DEVICE_ATTR(_name, _mode, _show, _store), \
2222 .index = _index }
2323
2424 #define SENSOR_ATTR_RO(_name, _func, _index) \
@@ -49,11 +49,11 @@ struct sensor_device_attribute_2 { · 24 unmodified lines
4949 u8 nr;
5050 };
5151 #define to_sensor_dev_attr_2(_dev_attr) \
52− container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
52+ container_of_const(_dev_attr, struct sensor_device_attribute_2, dev_attr)
5353
54−#define SENSOR_ATTR_2(_name, _mode, _show, _store, _nr, _index) \
55− { .dev_attr = __ATTR(_name, _mode, _show, _store), \
56− .index = _index, \
54+#define SENSOR_ATTR_2(_name, _mode, _show, _store, _nr, _index) \
55+ { .dev_attr = __DEVICE_ATTR(_name, _mode, _show, _store), \
56+ .index = _index, \
5757 .nr = _nr }
5858
5959 #define SENSOR_ATTR_2_RO(_name, _func, _nr, _index) \

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t