--- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -408,6 +409,15 @@ int add_mtd_device(struct mtd_info *mtd) of this try_ nonsense, and no bitching about it either. :) */ __module_get(THIS_MODULE); + + if (!strcmp(mtd->name, "rootfs") && + config_enabled(CONFIG_MTD_ROOTFS_ROOT_DEV) && + ROOT_DEV == 0) { + pr_notice("mtd: device %d (%s) set to be root filesystem\n", + mtd->index, mtd->name); + ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, mtd->index); + } + return 0; fail_added: gi/'>cgit logo index : openwrt/upstream
upstream openwrtJames
aboutsummaryrefslogtreecommitdiffstats
blob: de2216ab9219db1e45e9b250926ad7b208f5254b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From 266c506f4b262bd6aba0776a03d82c98e65d9906 Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: Tue, 1 May 2012 17:32:36 +0200
Subject: [PATCH 63/79] MTD: physmap: allow passing pp_data

---
 drivers/mtd/maps/physmap.c  |    4 +++-
 include/linux/mtd/physmap.h |    1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/mtd/maps/physmap.c
+++ b/drivers/mtd/maps/physmap.c
@@ -100,6 +100,7 @@ static int physmap_flash_probe(struct pl
 {
 	struct physmap_flash_data *physmap_data;
 	struct physmap_flash_info *info;
+	struct mtd_part_parser_data *pp_data;
 	const char **probe_type;
 	const char **part_types;
 	int err = 0;
@@ -191,8 +192,9 @@ static int physmap_flash_probe(struct pl
 	spin_lock_init(&info->vpp_lock);
 
 	part_types = physmap_data->part_probe_types ? : part_probe_types;
+	pp_data = physmap_data->pp_data ? physmap_data->pp_data : NULL;
 
-	mtd_device_parse_register(info->cmtd, part_types, NULL,
+	mtd_device_parse_register(info->cmtd, part_types, pp_data,
 				  physmap_data->parts, physmap_data->nr_parts);
 	return 0;
 
--- a/include/linux/mtd/physmap.h
+++ b/include/linux/mtd/physmap.h
@@ -32,6 +32,7 @@ struct physmap_flash_data {
 	char                    *probe_type;
 	struct mtd_partition	*parts;
 	const char		**part_probe_types;
+	struct mtd_part_parser_data *pp_data;
 };
 
 #endif /* __LINUX_MTD_PHYSMAP__ */