kernel: bump 4.9 to 4.9.206

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>
master
Koen Vandeputte 2019-12-06 14:06:33 +01:00
parent e964338110
commit a9b9592196
17 changed files with 47 additions and 47 deletions

View File

@ -6,11 +6,11 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif endif
LINUX_VERSION-4.9 = .205 LINUX_VERSION-4.9 = .206
LINUX_VERSION-4.14 = .156 LINUX_VERSION-4.14 = .156
LINUX_VERSION-4.19 = .86 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.14.156 = f8889feb0cbd7df36ff35bd4c72c1e2010567621bfcb218fcfa501bc5c7787c0
LINUX_KERNEL_HASH-4.19.86 = bf2cbba319d43d1bd9e876ac0b55ab83118d1a1e61cce3c929d5371f7567bff6 LINUX_KERNEL_HASH-4.19.86 = bf2cbba319d43d1bd9e876ac0b55ab83118d1a1e61cce3c929d5371f7567bff6

View File

@ -18,7 +18,7 @@ Acked-by: Brian Norris <computersforpeace@gmail.com>
--- a/drivers/mtd/mtdpart.c --- a/drivers/mtd/mtdpart.c
+++ b/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 NULL
}; };
@ -46,7 +46,7 @@ Acked-by: Brian Norris <computersforpeace@gmail.com>
/** /**
* parse_mtd_partitions - parse MTD partitions * parse_mtd_partitions - parse MTD partitions
* @master: the master partition (describes whole MTD device) * @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); parser ? parser->name : NULL);
if (!parser) if (!parser)
continue; continue;

View File

@ -54,7 +54,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
static struct mtd_part *allocate_partition(struct mtd_info *master, static struct mtd_part *allocate_partition(struct mtd_info *master,
const struct mtd_partition *part, int partno, const struct mtd_partition *part, int partno,
uint64_t cur_offset) 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); 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) int mtd_del_partition(struct mtd_info *master, int partno)
{ {
struct mtd_part *slave, *next; 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)) { (slave->mtd.index == partno)) {
sysfs_remove_files(&slave->mtd.dev.kobj, sysfs_remove_files(&slave->mtd.dev.kobj,
mtd_partition_attrs); mtd_partition_attrs);

View File

@ -25,7 +25,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
--- a/drivers/mtd/mtdpart.c --- a/drivers/mtd/mtdpart.c
+++ b/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; int err;
@ -34,7 +34,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
err = del_mtd_device(&priv->mtd); err = del_mtd_device(&priv->mtd);
if (err) if (err)
return 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) list_for_each_entry_safe(slave, next, &mtd_partitions, list)
if ((slave->master == master) && if ((slave->master == master) &&
(slave->mtd.index == partno)) { (slave->mtd.index == partno)) {

View File

@ -578,7 +578,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
if (IS_ERR(new)) if (IS_ERR(new))
return PTR_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); mutex_lock(&mtd_partitions_mutex);
list_for_each_entry_safe(slave, next, &mtd_partitions, list) 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); ret = __mtd_del_partition(slave);
if (ret < 0) if (ret < 0)
err = ret; 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); mutex_lock(&mtd_partitions_mutex);
list_for_each_entry_safe(slave, next, &mtd_partitions, list) 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)) { (slave->mtd.index == partno)) {
ret = __mtd_del_partition(slave); ret = __mtd_del_partition(slave);
break; 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)) if (!mtd_is_partition(mtd))
return mtd->size; return mtd->size;

View File

@ -31,7 +31,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
&parent->dev : &parent->dev :
parent->dev.parent; parent->dev.parent;
slave->mtd.dev.of_node = part->of_node; 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) 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); sysfs_remove_files(&priv->mtd.dev.kobj, mtd_partition_attrs);
err = del_mtd_device(&priv->mtd); 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 * 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); ret = __mtd_del_partition(slave);
if (ret < 0) if (ret < 0)
err = ret; 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; return err;
} }
@ -86,7 +86,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
(slave->mtd.index == partno)) { (slave->mtd.index == partno)) {
ret = __mtd_del_partition(slave); ret = __mtd_del_partition(slave);
break; 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)) if (!mtd_is_partition(mtd))
return mtd->size; return mtd->size;

View File

@ -76,9 +76,9 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
static struct mtd_part *allocate_partition(struct mtd_info *parent, static struct mtd_part *allocate_partition(struct mtd_info *parent,
const struct mtd_partition *part, int partno, const struct mtd_partition *part, int partno,
uint64_t cur_offset) 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); mtd_add_partition_attrs(slave);
+ if (parts[i].types) + if (parts[i].types)
+ mtd_parse_part(slave, parts[i].types); + mtd_parse_part(slave, parts[i].types);

View File

@ -55,7 +55,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
#include "mtdcore.h" #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 * parse_mtd_partitions - parse MTD partitions
* @master: the master partition (describes whole MTD device) * @master: the master partition (describes whole MTD device)
* @types: names of partition parsers to try or %NULL * @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; types = default_mtd_part_types;
for ( ; *types; types++) { for ( ; *types; types++) {

View File

@ -22,7 +22,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
--- a/drivers/mtd/mtdpart.c --- a/drivers/mtd/mtdpart.c
+++ b/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 device_node *np;
struct property *prop; struct property *prop;
const char *compat; const char *compat;
@ -31,7 +31,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
int ret, err = 0; int ret, err = 0;
np = of_get_child_by_name(mtd_get_of_node(master), "partitions"); 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); of_node_put(np);
/* /*

View File

@ -98,7 +98,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
} }
static struct mtd_part *allocate_partition(struct mtd_info *parent, 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; struct mtd_part_parser *parser;
int ret, err = 0; 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. * handled in a separated function.
*/ */
if (!strcmp(*types, "ofpart")) { if (!strcmp(*types, "ofpart")) {
@ -145,7 +145,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
} else { } else {
pr_debug("%s: parsing partitions %s\n", master->name, pr_debug("%s: parsing partitions %s\n", master->name,
*types); *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); parser ? parser->name : NULL);
if (!parser) if (!parser)
continue; continue;

View File

@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/can/c_can/c_can.c --- a/drivers/net/can/c_can/c_can.c
+++ b/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: end:
if (work_done < quota) { 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 --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
+++ b/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 no Tx and not enough Rx work done, exit the polling mode */
if (work_done < budget) { if (work_done < budget) {
quit_polling: quit_polling:

View File

@ -55,9 +55,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
static struct mtd_part *allocate_partition(struct mtd_info *parent, static struct mtd_part *allocate_partition(struct mtd_info *parent,
const struct mtd_partition *part, int partno, const struct mtd_partition *part, int partno,
uint64_t cur_offset) 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); mtd_add_partition_attrs(slave);
- if (parts[i].types) - if (parts[i].types)
- mtd_parse_part(slave, 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; 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 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, static int mtd_part_do_parse(struct mtd_part_parser *parser,
struct mtd_info *master, struct mtd_info *master,
struct mtd_partitions *pparts, 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"; const char *fixed = "fixed-partitions";
int ret, err = 0; 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) { of_property_for_each_string(np, "compatible", prop, compat) {
parser = mtd_part_get_compatible_parser(compat); parser = mtd_part_get_compatible_parser(compat);
if (!parser) 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; int ret, err = 0;
if (!types) if (!types)

View File

@ -114,7 +114,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#include <linux/err.h> #include <linux/err.h>
#include <linux/of.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); 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 * Do not forget to update 'parse_mtd_partitions()' kerneldoc comment if you
* are changing this array! * 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_partitions pparts = { };
struct mtd_part_parser *parser; struct mtd_part_parser *parser;
int ret, err = 0; int ret, err = 0;
@ -171,7 +171,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
if (!types) if (!types)
types = mtd_is_partition(master) ? default_subpartition_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) if (ret < 0 && !err)
err = ret; err = ret;
} }

View 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 * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
* the pointer to that structure. * the pointer to that structure.
@@ -650,6 +654,7 @@ int mtd_add_partition(struct mtd_info *p @@ -653,6 +657,7 @@ int mtd_add_partition(struct mtd_info *p
mutex_unlock(&mtd_partitions_mutex); if (ret)
goto err_remove_part;
add_mtd_device(&new->mtd);
+ mtd_partition_split(parent, new); + mtd_partition_split(parent, new);
mtd_add_partition_attrs(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); 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 * 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 * and registers slave MTD objects which are bound to the master according to
@@ -759,6 +787,7 @@ int add_mtd_partitions(struct mtd_info * @@ -779,6 +807,7 @@ int add_mtd_partitions(struct mtd_info *
mutex_unlock(&mtd_partitions_mutex); goto err_del_partitions;
}
add_mtd_device(&slave->mtd);
+ mtd_partition_split(master, slave); + mtd_partition_split(master, slave);
mtd_add_partition_attrs(slave); mtd_add_partition_attrs(slave);
/* Look for subpartitions */ /* Look for subpartitions */

View 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 * 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); EXPORT_SYMBOL_GPL(mtd_del_partition);
@ -57,7 +57,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME #ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME #define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else #else
@@ -1109,6 +1143,61 @@ void mtd_part_parser_cleanup(struct mtd_ @@ -1134,6 +1168,61 @@ void mtd_part_parser_cleanup(struct mtd_
} }
} }

View File

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c --- a/drivers/mtd/mtdpart.c
+++ b/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) 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) 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) if (rootfs_found)
return; return;

View File

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c --- a/drivers/mtd/mtdpart.c
+++ b/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); EXPORT_SYMBOL_GPL(mtd_is_partition);