}
 
 static ssize_t c2port_read_flash_data(struct file *filp, struct kobject *kobj,
-                               struct bin_attribute *attr,
+                               const struct bin_attribute *attr,
                                char *buffer, loff_t offset, size_t count)
 {
        struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
 }
 
 static ssize_t c2port_write_flash_data(struct file *filp, struct kobject *kobj,
-                               struct bin_attribute *attr,
+                               const struct bin_attribute *attr,
                                char *buffer, loff_t offset, size_t count)
 {
        struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
        return ret;
 }
 /* size is computed at run-time */
-static BIN_ATTR(flash_data, 0644, c2port_read_flash_data,
-               c2port_write_flash_data, 0);
+static const BIN_ATTR(flash_data, 0644, c2port_read_flash_data,
+                     c2port_write_flash_data, 0);
 
 /*
  * Class attributes
        NULL,
 };
 
-static struct bin_attribute *c2port_bin_attrs[] = {
+static const struct bin_attribute *const c2port_bin_attrs[] = {
        &bin_attr_flash_data,
        NULL,
 };
 
 static const struct attribute_group c2port_group = {
        .attrs = c2port_attrs,
-       .bin_attrs = c2port_bin_attrs,
+       .bin_attrs_new = c2port_bin_attrs,
        .bin_size = c2port_bin_attr_size,
 };