};
 
 static ssize_t global_mmio_read(struct file *filp, struct kobject *kobj,
-                               struct bin_attribute *bin_attr, char *buf,
+                               const struct bin_attribute *bin_attr, char *buf,
                                loff_t off, size_t count)
 {
        struct ocxl_afu *afu = to_afu(kobj_to_dev(kobj));
        info->attr_global_mmio.attr.name = "global_mmio_area";
        info->attr_global_mmio.attr.mode = 0600;
        info->attr_global_mmio.size = info->afu->config.global_mmio_size;
-       info->attr_global_mmio.read = global_mmio_read;
+       info->attr_global_mmio.read_new = global_mmio_read;
        info->attr_global_mmio.mmap = global_mmio_mmap;
        rc = device_create_bin_file(&info->dev, &info->attr_global_mmio);
        if (rc) {