#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0)
+#if !(defined RHEL_MAJOR && RHEL_MAJOR == 7)
#if !(defined RHEL_MAJOR && RHEL_MAJOR == 6 && RHEL_MINOR >= 7)
static int sysfs_create_groups(struct kobject *kobj,
const struct attribute_group **groups)
for (i = 0; groups[i]; i++)
sysfs_remove_group(kobj, groups[i]);
}
+#endif
+#if !(defined RHEL_MAJOR && RHEL_MAJOR == 7)
#if !(defined RHEL_MAJOR && RHEL_MAJOR == 6 && RHEL_MINOR >= 7)
static inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr)
{
}
#endif
#endif
+#endif
#ifdef __NEED_I2C__
#define pr_warn_ratelimited pr_warning_ratelimited
#endif
+#ifndef sysfs_attr_init
+#define sysfs_attr_init(attr) do {} while (0)
+#endif
+
+#ifndef __ATTR_RO
+#define __ATTR_RO(_name) { \
+ .attr = { .name = __stringify(_name), .mode = 0444 }, \
+ .show = _name##_show, \
+}
+#endif
+
+#ifndef DEVICE_ATTR_RO
+#define DEVICE_ATTR_RO(_name) \
+ struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
+#endif
+
#endif /* __COMPAT_H */