linux/generic/pending-5.15: add missing patch headers

This patches does not have a valid patch headers and does not apply on
an external git tree with 'git am'. To fix this add the missing headers.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
This commit is contained in:
Florian Eckert
2022-07-14 08:51:48 +02:00
committed by Christian Marangi
parent a9573a029a
commit 2ed7f6cbb0
7 changed files with 173 additions and 44 deletions

View File

@@ -1,3 +1,18 @@
From 39717277d5c87bdb183cf2f258957b44ba99b4df Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 11:47:35 +0200
Subject: [PATCH] mtd: mtdsplit support
---
drivers/mtd/Kconfig | 19 ++++
drivers/mtd/Makefile | 2 +
drivers/mtd/mtdpart.c | 169 ++++++++++++++++++++++++++++-----
include/linux/mtd/mtd.h | 25 +++++
include/linux/mtd/partitions.h | 7 ++
5 files changed, 197 insertions(+), 25 deletions(-)
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index 796a2eccbef0..f9ed93c4cf0f 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -12,6 +12,25 @@ menuconfig MTD
@@ -26,6 +41,21 @@
config MTD_TESTS
tristate "MTD tests support (DANGEROUS)"
depends on m
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
index 593d0593a038..b14b7fe0f597 100644
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -9,6 +9,8 @@ mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
obj-y += parsers/
+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/
+
# 'Users' - code which presents functionality to userspace.
obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index d442fa94c872..f1ed12aae1fe 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -15,11 +15,13 @@
@@ -42,7 +72,7 @@
/*
* MTD methods which simply translate the effective address and pass through
@@ -236,6 +238,146 @@ static int mtd_add_partition_attrs(struc
@@ -236,6 +238,146 @@ static int mtd_add_partition_attrs(struct mtd_info *new)
return ret;
}
@@ -189,7 +219,7 @@
int mtd_add_partition(struct mtd_info *parent, const char *name,
long long offset, long long length)
{
@@ -274,6 +416,7 @@ int mtd_add_partition(struct mtd_info *p
@@ -274,6 +416,7 @@ int mtd_add_partition(struct mtd_info *parent, const char *name,
if (ret)
goto err_remove_part;
@@ -197,7 +227,7 @@
mtd_add_partition_attrs(child);
return 0;
@@ -422,6 +565,7 @@ int add_mtd_partitions(struct mtd_info *
@@ -422,6 +565,7 @@ int add_mtd_partitions(struct mtd_info *parent,
goto err_del_partitions;
}
@@ -205,7 +235,7 @@
mtd_add_partition_attrs(child);
/* Look for subpartitions */
@@ -438,31 +582,6 @@ err_del_partitions:
@@ -438,31 +582,6 @@ int add_mtd_partitions(struct mtd_info *parent,
return ret;
}
@@ -237,43 +267,11 @@
/*
* Many partition parsers just expected the core to kfree() all their data in
* one chunk. Do that by default.
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -75,6 +75,12 @@ struct mtd_part_parser_data {
* Functions dealing with the various ways of partitioning the space
*/
+enum mtd_parser_type {
+ MTD_PARSER_TYPE_DEVICE = 0,
+ MTD_PARSER_TYPE_ROOTFS,
+ MTD_PARSER_TYPE_FIRMWARE,
+};
+
struct mtd_part_parser {
struct list_head list;
struct module *owner;
@@ -83,6 +89,7 @@ struct mtd_part_parser {
int (*parse_fn)(struct mtd_info *, const struct mtd_partition **,
struct mtd_part_parser_data *);
void (*cleanup)(const struct mtd_partition *pparts, int nr_parts);
+ enum mtd_parser_type type;
};
/* Container for passing around a set of parsed partitions */
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -9,6 +9,8 @@ mtd-y := mtdcore.o mtdsuper.o mtdconc
obj-y += parsers/
+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/
+
# 'Users' - code which presents functionality to userspace.
obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 8a2c60235ebb..b092bf6ff97d 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -613,6 +613,24 @@ static inline void mtd_align_erase_req(s
@@ -613,6 +613,24 @@ static inline void mtd_align_erase_req(struct mtd_info *mtd,
req->len += mtd->erasesize - mod;
}
@@ -298,7 +296,7 @@
static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
{
if (mtd->writesize_shift)
@@ -685,6 +703,13 @@ extern void __put_mtd_device(struct mtd_
@@ -685,6 +703,13 @@ extern void __put_mtd_device(struct mtd_info *mtd);
extern struct mtd_info *get_mtd_device_nm(const char *name);
extern void put_mtd_device(struct mtd_info *mtd);
@@ -312,3 +310,30 @@
struct mtd_notifier {
void (*add)(struct mtd_info *mtd);
diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
index b74a539ec581..65ba0dbf961d 100644
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -75,6 +75,12 @@ struct mtd_part_parser_data {
* Functions dealing with the various ways of partitioning the space
*/
+enum mtd_parser_type {
+ MTD_PARSER_TYPE_DEVICE = 0,
+ MTD_PARSER_TYPE_ROOTFS,
+ MTD_PARSER_TYPE_FIRMWARE,
+};
+
struct mtd_part_parser {
struct list_head list;
struct module *owner;
@@ -83,6 +89,7 @@ struct mtd_part_parser {
int (*parse_fn)(struct mtd_info *, const struct mtd_partition **,
struct mtd_part_parser_data *);
void (*cleanup)(const struct mtd_partition *pparts, int nr_parts);
+ enum mtd_parser_type type;
};
/* Container for passing around a set of parsed partitions */
--