kernel: update myloader for linux 4.9
[openwrt/openwrt.git] / target / linux / generic / files / drivers / mtd / myloader.c
index 51c037459ff9b6965ced16f244197bcddedf8f24..7532d454ede8a4c36e0d648b8c35216c0fb02f26 100644 (file)
@@ -14,6 +14,8 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/version.h>
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
@@ -30,9 +32,9 @@ struct part_data {
        char names[MYLO_MAX_PARTITIONS][PART_NAME_LEN];
 };
 
-int myloader_parse_partitions(struct mtd_info *master,
-                       struct mtd_partition **pparts,
-                       unsigned long origin)
+static int myloader_parse_partitions(struct mtd_info *master,
+                                    const struct mtd_partition **pparts,
+                                    struct mtd_part_parser_data *data)
 {
        struct part_data *buf;
        struct mylo_partition_table *tab;
@@ -64,8 +66,8 @@ int myloader_parse_partitions(struct mtd_info *master,
                printk(KERN_DEBUG "%s: searching for MyLoader partition table"
                                " at offset 0x%lx\n", master->name, offset);
 
-               ret = master->read(master, offset, sizeof(*buf), &retlen,
-                                       (void *)buf);
+               ret = mtd_read(master, offset, sizeof(*buf), &retlen,
+                              (void *)buf);
                if (ret)
                        goto out_free_buf;
 
@@ -162,7 +164,9 @@ static struct mtd_part_parser myloader_mtd_parser = {
 
 static int __init myloader_mtd_parser_init(void)
 {
-       return register_mtd_parser(&myloader_mtd_parser);
+       register_mtd_parser(&myloader_mtd_parser);
+
+       return 0;
 }
 
 static void __exit myloader_mtd_parser_exit(void)