diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/device.h | 3 | ||||
-rw-r--r-- | include/linux/sysfs.h | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index a8db2cfa2c81..e04f5776f6d0 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -504,6 +504,9 @@ ssize_t device_store_int(struct device *dev, struct device_attribute *attr, | |||
504 | #define DEVICE_INT_ATTR(_name, _mode, _var) \ | 504 | #define DEVICE_INT_ATTR(_name, _mode, _var) \ |
505 | struct dev_ext_attribute dev_attr_##_name = \ | 505 | struct dev_ext_attribute dev_attr_##_name = \ |
506 | { __ATTR(_name, _mode, device_show_int, device_store_int), &(_var) } | 506 | { __ATTR(_name, _mode, device_show_int, device_store_int), &(_var) } |
507 | #define DEVICE_ATTR_IGNORE_LOCKDEP(_name, _mode, _show, _store) \ | ||
508 | struct device_attribute dev_attr_##_name = \ | ||
509 | __ATTR_IGNORE_LOCKDEP(_name, _mode, _show, _store) | ||
507 | 510 | ||
508 | extern int device_create_file(struct device *device, | 511 | extern int device_create_file(struct device *device, |
509 | const struct device_attribute *entry); | 512 | const struct device_attribute *entry); |
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 0010009b2f00..381f06db2fe5 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
@@ -27,6 +27,7 @@ struct attribute { | |||
27 | const char *name; | 27 | const char *name; |
28 | umode_t mode; | 28 | umode_t mode; |
29 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | 29 | #ifdef CONFIG_DEBUG_LOCK_ALLOC |
30 | bool ignore_lockdep:1; | ||
30 | struct lock_class_key *key; | 31 | struct lock_class_key *key; |
31 | struct lock_class_key skey; | 32 | struct lock_class_key skey; |
32 | #endif | 33 | #endif |
@@ -80,6 +81,17 @@ struct attribute_group { | |||
80 | 81 | ||
81 | #define __ATTR_NULL { .attr = { .name = NULL } } | 82 | #define __ATTR_NULL { .attr = { .name = NULL } } |
82 | 83 | ||
84 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
85 | #define __ATTR_IGNORE_LOCKDEP(_name, _mode, _show, _store) { \ | ||
86 | .attr = {.name = __stringify(_name), .mode = _mode, \ | ||
87 | .ignore_lockdep = true }, \ | ||
88 | .show = _show, \ | ||
89 | .store = _store, \ | ||
90 | } | ||
91 | #else | ||
92 | #define __ATTR_IGNORE_LOCKDEP __ATTR | ||
93 | #endif | ||
94 | |||
83 | #define attr_name(_attr) (_attr).attr.name | 95 | #define attr_name(_attr) (_attr).attr.name |
84 | 96 | ||
85 | struct file; | 97 | struct file; |