}
 
 #define capability_attribute(name)                                     \
-static ssize_t show_##name(struct device *dev,                         \
+static ssize_t name##_show(struct device *dev,                         \
                           struct device_attribute *attr, char *buf)    \
 {                                                                      \
        struct usb_interface *intf = to_usb_interface(dev);             \
                                                                        \
        return sprintf(buf, "%d\n", data->capabilities.name);           \
 }                                                                      \
-static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL)
+static DEVICE_ATTR_RO(name)
 
 capability_attribute(interface_capabilities);
 capability_attribute(device_capabilities);
        .attrs = capability_attrs,
 };
 
-static ssize_t show_TermChar(struct device *dev,
+static ssize_t TermChar_show(struct device *dev,
                             struct device_attribute *attr, char *buf)
 {
        struct usb_interface *intf = to_usb_interface(dev);
        return sprintf(buf, "%c\n", data->TermChar);
 }
 
-static ssize_t store_TermChar(struct device *dev,
+static ssize_t TermChar_store(struct device *dev,
                              struct device_attribute *attr,
                              const char *buf, size_t count)
 {
        data->TermChar = buf[0];
        return count;
 }
-static DEVICE_ATTR(TermChar, S_IRUGO, show_TermChar, store_TermChar);
+static DEVICE_ATTR_RW(TermChar);
 
 #define data_attribute(name)                                           \
-static ssize_t show_##name(struct device *dev,                         \
+static ssize_t name##_show(struct device *dev,                         \
                           struct device_attribute *attr, char *buf)    \
 {                                                                      \
        struct usb_interface *intf = to_usb_interface(dev);             \
                                                                        \
        return sprintf(buf, "%d\n", data->name);                        \
 }                                                                      \
-static ssize_t store_##name(struct device *dev,                                \
+static ssize_t name##_store(struct device *dev,                                \
                            struct device_attribute *attr,              \
                            const char *buf, size_t count)              \
 {                                                                      \
        else                                                            \
                return count;                                           \
 }                                                                      \
-static DEVICE_ATTR(name, S_IRUGO, show_##name, store_##name)
+static DEVICE_ATTR_RW(name)
 
 data_attribute(TermCharEnabled);
 data_attribute(auto_abort);