kernel: bump 4.9 to 4.9.206
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Fri, 6 Dec 2019 13:06:33 +0000 (14:06 +0100)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Tue, 10 Dec 2019 08:50:42 +0000 (09:50 +0100)
Refreshed all patches.

Altered patches:
- 400-mtd-add-rootfs-split-support.patch

Compile-tested on: none
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
17 files changed:
include/kernel-version.mk
target/linux/generic/backport-4.9/065-v4.13-0002-mtd-partitions-factor-out-code-calling-parser.patch
target/linux/generic/backport-4.9/065-v4.13-0003-mtd-partitions-add-helper-for-deleting-partition.patch
target/linux/generic/backport-4.9/065-v4.13-0004-mtd-partitions-remove-sysfs-files-when-deleting-all-.patch
target/linux/generic/backport-4.9/065-v4.13-0005-mtd-partitions-rename-master-to-the-parent-where-app.patch
target/linux/generic/backport-4.9/065-v4.13-0006-mtd-partitions-add-support-for-subpartitions.patch
target/linux/generic/backport-4.9/065-v4.13-0007-mtd-partitions-add-support-for-partition-parsers.patch
target/linux/generic/backport-4.9/067-v4.17-0001-mtd-partitions-add-of_match_table-parser-matching-fo.patch
target/linux/generic/backport-4.9/067-v4.17-0002-mtd-rename-ofpart-parser-to-fixed-partitions-as-it-f.patch
target/linux/generic/backport-4.9/068-v4.18-0001-mtd-move-code-adding-registering-partitions-to-the-p.patch
target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch
target/linux/generic/backport-4.9/402-v4.19-mtd-partitions-use-DT-info-for-parsing-partitions-wi.patch
target/linux/generic/pending-4.9/161-mtd-part-add-generic-parsing-of-linux-part-probe.patch
target/linux/generic/pending-4.9/400-mtd-add-rootfs-split-support.patch
target/linux/generic/pending-4.9/401-mtd-add-support-for-different-partition-parser-types.patch
target/linux/generic/pending-4.9/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
target/linux/generic/pending-4.9/404-mtd-add-more-helper-functions.patch

index 2f80a62e7e650ede70f6134a0fb1ec4382fa1e5a..6a85c7a0b13a80fe8ba56d673ae0a76725abb17a 100644 (file)
@@ -6,11 +6,11 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.9 = .205
+LINUX_VERSION-4.9 = .206
 LINUX_VERSION-4.14 = .156
 LINUX_VERSION-4.19 = .86
 
-LINUX_KERNEL_HASH-4.9.205 = 98b9e8644706acc0cf51022372bb263b59a1d2bbe3ccd7ce6bd9bc7378c78b05
+LINUX_KERNEL_HASH-4.9.206 = 1df27899a9bc4dd874f3830ab9e7b638f0026dffd67a2e230444e5d2805ccad6
 LINUX_KERNEL_HASH-4.14.156 = f8889feb0cbd7df36ff35bd4c72c1e2010567621bfcb218fcfa501bc5c7787c0
 LINUX_KERNEL_HASH-4.19.86 = bf2cbba319d43d1bd9e876ac0b55ab83118d1a1e61cce3c929d5371f7567bff6
 
index d312e081a9d4f7884aac396d9506ef47f0a748b9..70c1462d3fb743508ae55d245d9d58fc86a45c49 100644 (file)
@@ -18,7 +18,7 @@ Acked-by: Brian Norris <computersforpeace@gmail.com>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -807,6 +807,27 @@ static const char * const default_mtd_pa
+@@ -832,6 +832,27 @@ static const char * const default_mtd_pa
        NULL
  };
  
@@ -46,7 +46,7 @@ Acked-by: Brian Norris <computersforpeace@gmail.com>
  /**
   * parse_mtd_partitions - parse MTD partitions
   * @master: the master partition (describes whole MTD device)
-@@ -847,16 +868,10 @@ int parse_mtd_partitions(struct mtd_info
+@@ -872,16 +893,10 @@ int parse_mtd_partitions(struct mtd_info
                         parser ? parser->name : NULL);
                if (!parser)
                        continue;
index d93f4ba4b52f0a62454a301bb79d5a39662ab7f2..dea64a1f6d9d6ad99cb674e42b574a4054aefcfc 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
  static struct mtd_part *allocate_partition(struct mtd_info *master,
                        const struct mtd_partition *part, int partno,
                        uint64_t cur_offset)
-@@ -675,6 +649,48 @@ int mtd_add_partition(struct mtd_info *m
+@@ -686,6 +660,48 @@ err_remove_part:
  }
  EXPORT_SYMBOL_GPL(mtd_add_partition);
  
@@ -103,7 +103,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
  int mtd_del_partition(struct mtd_info *master, int partno)
  {
        struct mtd_part *slave, *next;
-@@ -686,12 +702,7 @@ int mtd_del_partition(struct mtd_info *m
+@@ -697,12 +713,7 @@ int mtd_del_partition(struct mtd_info *m
                    (slave->mtd.index == partno)) {
                        sysfs_remove_files(&slave->mtd.dev.kobj,
                                           mtd_partition_attrs);
index 0f1b502b70da3dc697c896c0df84a3577ed80f6e..72edb25cc320d9dfb71ce10f969911b108257e37 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -660,6 +660,8 @@ static int __mtd_del_partition(struct mt
+@@ -671,6 +671,8 @@ static int __mtd_del_partition(struct mt
  {
        int err;
  
@@ -34,7 +34,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
        err = del_mtd_device(&priv->mtd);
        if (err)
                return err;
-@@ -700,8 +702,6 @@ int mtd_del_partition(struct mtd_info *m
+@@ -711,8 +713,6 @@ int mtd_del_partition(struct mtd_info *m
        list_for_each_entry_safe(slave, next, &mtd_partitions, list)
                if ((slave->master == master) &&
                    (slave->mtd.index == partno)) {
index 79512276547140d7eda5ba6a922078f279810838..490eaa2e7ca2336d674fbe7eac9b058d3f270d14 100644 (file)
@@ -578,7 +578,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
        if (IS_ERR(new))
                return PTR_ERR(new);
  
-@@ -683,7 +689,7 @@ int del_mtd_partitions(struct mtd_info *
+@@ -694,7 +700,7 @@ int del_mtd_partitions(struct mtd_info *
  
        mutex_lock(&mtd_partitions_mutex);
        list_for_each_entry_safe(slave, next, &mtd_partitions, list)
@@ -587,7 +587,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
                        ret = __mtd_del_partition(slave);
                        if (ret < 0)
                                err = ret;
-@@ -700,7 +706,7 @@ int mtd_del_partition(struct mtd_info *m
+@@ -711,7 +717,7 @@ int mtd_del_partition(struct mtd_info *m
  
        mutex_lock(&mtd_partitions_mutex);
        list_for_each_entry_safe(slave, next, &mtd_partitions, list)
@@ -596,7 +596,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
                    (slave->mtd.index == partno)) {
                        ret = __mtd_del_partition(slave);
                        break;
-@@ -933,6 +939,6 @@ uint64_t mtd_get_device_size(const struc
+@@ -958,6 +964,6 @@ uint64_t mtd_get_device_size(const struc
        if (!mtd_is_partition(mtd))
                return mtd->size;
  
index 0d3e10ac201eec9c5be1ba59510a07c9dc4c7bda..578e59a8a1ecc723c147087ea4824e7e0f45888a 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
                                &parent->dev :
                                parent->dev.parent;
        slave->mtd.dev.of_node = part->of_node;
-@@ -664,8 +664,17 @@ EXPORT_SYMBOL_GPL(mtd_add_partition);
+@@ -675,8 +675,17 @@ EXPORT_SYMBOL_GPL(mtd_add_partition);
   */
  static int __mtd_del_partition(struct mtd_part *priv)
  {
@@ -49,7 +49,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
        sysfs_remove_files(&priv->mtd.dev.kobj, mtd_partition_attrs);
  
        err = del_mtd_device(&priv->mtd);
-@@ -680,16 +689,16 @@ static int __mtd_del_partition(struct mt
+@@ -691,16 +700,16 @@ static int __mtd_del_partition(struct mt
  
  /*
   * This function unregisters and destroy all slave MTD objects which are
@@ -69,7 +69,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
                        ret = __mtd_del_partition(slave);
                        if (ret < 0)
                                err = ret;
-@@ -699,14 +708,14 @@ int del_mtd_partitions(struct mtd_info *
+@@ -710,14 +719,14 @@ int del_mtd_partitions(struct mtd_info *
        return err;
  }
  
@@ -86,7 +86,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
                    (slave->mtd.index == partno)) {
                        ret = __mtd_del_partition(slave);
                        break;
-@@ -939,6 +948,6 @@ uint64_t mtd_get_device_size(const struc
+@@ -964,6 +973,6 @@ uint64_t mtd_get_device_size(const struc
        if (!mtd_is_partition(mtd))
                return mtd->size;
  
index a28ee316fac74137293d8b7251783438b784ea04..c4c517f23845db3b882cc3b92b3083ba6e5e98b9 100644 (file)
@@ -76,9 +76,9 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
  static struct mtd_part *allocate_partition(struct mtd_info *parent,
                        const struct mtd_partition *part, int partno,
                        uint64_t cur_offset)
-@@ -758,6 +787,8 @@ int add_mtd_partitions(struct mtd_info *
+@@ -778,6 +807,8 @@ int add_mtd_partitions(struct mtd_info *
+               }
  
-               add_mtd_device(&slave->mtd);
                mtd_add_partition_attrs(slave);
 +              if (parts[i].types)
 +                      mtd_parse_part(slave, parts[i].types);
index 60eace2a347777ac764cc6063650d0e5e3d53693..cb464996b7fb63d35794aff33e6577beac4f57a8 100644 (file)
@@ -55,7 +55,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  
  #include "mtdcore.h"
  
-@@ -886,6 +887,92 @@ static int mtd_part_do_parse(struct mtd_
+@@ -911,6 +912,92 @@ static int mtd_part_do_parse(struct mtd_
  }
  
  /**
@@ -148,7 +148,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
   * parse_mtd_partitions - parse MTD partitions
   * @master: the master partition (describes whole MTD device)
   * @types: names of partition parsers to try or %NULL
-@@ -917,19 +1004,30 @@ int parse_mtd_partitions(struct mtd_info
+@@ -942,19 +1029,30 @@ int parse_mtd_partitions(struct mtd_info
                types = default_mtd_part_types;
  
        for ( ; *types; types++) {
index 59f53df1019b996f221ffa95f90e289b436f11b4..b22ddfabd8bfdba4fa1bd41ca0c31a4ebddae9a4 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -932,7 +932,7 @@ static int mtd_part_of_parse(struct mtd_
+@@ -957,7 +957,7 @@ static int mtd_part_of_parse(struct mtd_
        struct device_node *np;
        struct property *prop;
        const char *compat;
@@ -31,7 +31,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
        int ret, err = 0;
  
        np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
-@@ -952,7 +952,7 @@ static int mtd_part_of_parse(struct mtd_
+@@ -977,7 +977,7 @@ static int mtd_part_of_parse(struct mtd_
        of_node_put(np);
  
        /*
index 29aa3b9e8d10936c4a8fd6ce255e6271597e1b19..4bedd54a03f118e71a890a4b774fee16ffd3b7b6 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  }
  
  static struct mtd_part *allocate_partition(struct mtd_info *parent,
-@@ -973,30 +960,27 @@ static int mtd_part_of_parse(struct mtd_
+@@ -998,30 +985,27 @@ static int mtd_part_of_parse(struct mtd_
  }
  
  /**
@@ -136,7 +136,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
        struct mtd_part_parser *parser;
        int ret, err = 0;
  
-@@ -1010,7 +994,7 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1035,7 +1019,7 @@ int parse_mtd_partitions(struct mtd_info
                 * handled in a separated function.
                 */
                if (!strcmp(*types, "ofpart")) {
@@ -145,7 +145,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
                } else {
                        pr_debug("%s: parsing partitions %s\n", master->name,
                                 *types);
-@@ -1021,13 +1005,17 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1046,13 +1030,17 @@ int parse_mtd_partitions(struct mtd_info
                                parser ? parser->name : NULL);
                        if (!parser)
                                continue;
index 6052bf5777360165ec09d042dbc36dbaa317dbac..d8d8ad5ea4fb97a5c3af8b0083294b2c701b08ee 100644 (file)
@@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/drivers/net/can/c_can/c_can.c
 +++ b/drivers/net/can/c_can/c_can.c
-@@ -1079,7 +1079,7 @@ static int c_can_poll(struct napi_struct
+@@ -1105,7 +1105,7 @@ static int c_can_poll(struct napi_struct
  
  end:
        if (work_done < quota) {
@@ -313,7 +313,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
 --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
 +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
-@@ -1532,7 +1532,7 @@ static int atl1e_clean(struct napi_struc
+@@ -1534,7 +1534,7 @@ static int atl1e_clean(struct napi_struc
        /* If no Tx and not enough Rx work done, exit the polling mode */
        if (work_done < budget) {
  quit_polling:
index 4186f5599f1e86198886ee8ba892b52780a018b7..758de9fdf3fdd34859b8849b12366048c5d9230e 100644 (file)
@@ -55,9 +55,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  static struct mtd_part *allocate_partition(struct mtd_info *parent,
                        const struct mtd_partition *part, int partno,
                        uint64_t cur_offset)
-@@ -775,8 +759,8 @@ int add_mtd_partitions(struct mtd_info *
+@@ -795,8 +779,8 @@ int add_mtd_partitions(struct mtd_info *
+               }
  
-               add_mtd_device(&slave->mtd);
                mtd_add_partition_attrs(slave);
 -              if (parts[i].types)
 -                      mtd_parse_part(slave, parts[i].types);
@@ -66,7 +66,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  
                cur_offset = slave->offset + slave->mtd.size;
        }
-@@ -852,6 +836,12 @@ static const char * const default_mtd_pa
+@@ -877,6 +861,12 @@ static const char * const default_mtd_pa
        NULL
  };
  
@@ -79,7 +79,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  static int mtd_part_do_parse(struct mtd_part_parser *parser,
                             struct mtd_info *master,
                             struct mtd_partitions *pparts,
-@@ -922,7 +912,9 @@ static int mtd_part_of_parse(struct mtd_
+@@ -947,7 +937,9 @@ static int mtd_part_of_parse(struct mtd_
        const char *fixed = "fixed-partitions";
        int ret, err = 0;
  
@@ -90,7 +90,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
        of_property_for_each_string(np, "compatible", prop, compat) {
                parser = mtd_part_get_compatible_parser(compat);
                if (!parser)
-@@ -985,7 +977,8 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1010,7 +1002,8 @@ int parse_mtd_partitions(struct mtd_info
        int ret, err = 0;
  
        if (!types)
index 64ed23170bb659208a5491ea5543242bb09d14d8..11a33b7ebfde6778e2964a5bc31022f9db7172f8 100644 (file)
@@ -114,7 +114,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  #include <linux/err.h>
  #include <linux/of.h>
  
-@@ -827,6 +828,42 @@ void deregister_mtd_parser(struct mtd_pa
+@@ -852,6 +853,42 @@ void deregister_mtd_parser(struct mtd_pa
  EXPORT_SYMBOL_GPL(deregister_mtd_parser);
  
  /*
@@ -157,7 +157,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
   * Do not forget to update 'parse_mtd_partitions()' kerneldoc comment if you
   * are changing this array!
   */
-@@ -975,6 +1012,13 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1000,6 +1037,13 @@ int parse_mtd_partitions(struct mtd_info
        struct mtd_partitions pparts = { };
        struct mtd_part_parser *parser;
        int ret, err = 0;
@@ -171,7 +171,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
        if (!types)
                types = mtd_is_partition(master) ? default_subpartition_types :
-@@ -1016,6 +1060,7 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1041,6 +1085,7 @@ int parse_mtd_partitions(struct mtd_info
                if (ret < 0 && !err)
                        err = ret;
        }
index c9e3ca3713d4fe1b154acb3918b0c9795f9756e6..4369ed3f4ffab7d7e2f40c31a666ef97e2ab2699 100644 (file)
@@ -60,15 +60,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
   * the pointer to that structure.
-@@ -650,6 +654,7 @@ int mtd_add_partition(struct mtd_info *p
-       mutex_unlock(&mtd_partitions_mutex);
+@@ -653,6 +657,7 @@ int mtd_add_partition(struct mtd_info *p
+       if (ret)
+               goto err_remove_part;
  
-       add_mtd_device(&new->mtd);
 +      mtd_partition_split(parent, new);
        mtd_add_partition_attrs(new);
  
-@@ -728,6 +733,29 @@ int mtd_del_partition(struct mtd_info *m
+       return 0;
+@@ -739,6 +744,29 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -98,10 +98,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * This function, given a master MTD object and a partition table, creates
   * and registers slave MTD objects which are bound to the master according to
-@@ -759,6 +787,7 @@ int add_mtd_partitions(struct mtd_info *
-               mutex_unlock(&mtd_partitions_mutex);
+@@ -779,6 +807,7 @@ int add_mtd_partitions(struct mtd_info *
+                       goto err_del_partitions;
+               }
  
-               add_mtd_device(&slave->mtd);
 +              mtd_partition_split(master, slave);
                mtd_add_partition_attrs(slave);
                /* Look for subpartitions */
index 5a9d3f7560812220abd994281b898a2f028c003f..eefba9f508d9a48a81cd06942ba35e355d72934c 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
-@@ -733,6 +737,36 @@ int mtd_del_partition(struct mtd_info *m
+@@ -744,6 +748,36 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -57,7 +57,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  #ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #define SPLIT_FIRMWARE_NAME   CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #else
-@@ -1109,6 +1143,61 @@ void mtd_part_parser_cleanup(struct mtd_
+@@ -1134,6 +1168,61 @@ void mtd_part_parser_cleanup(struct mtd_
        }
  }
  
index 42d95360fd9cce3c038a705c3cee6e7584d5e68f..6085cb8ffb28e543a71be86273d11266a42ae9b1 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -775,6 +775,7 @@ run_parsers_by_type(struct mtd_part *sla
+@@ -786,6 +786,7 @@ run_parsers_by_type(struct mtd_part *sla
  
  static void split_firmware(struct mtd_info *master, struct mtd_part *part)
  {
@@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  }
  
  static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
-@@ -784,6 +785,12 @@ static void mtd_partition_split(struct m
+@@ -795,6 +796,12 @@ static void mtd_partition_split(struct m
        if (rootfs_found)
                return;
  
index b59977455e861ae736227e71ccc4d5188899b92a..294a0f6f8b2d872ade11f230c5bcf522bf44557e 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -1222,6 +1222,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -1247,6 +1247,24 @@ int mtd_is_partition(const struct mtd_in
  }
  EXPORT_SYMBOL_GPL(mtd_is_partition);