
This is some hack on top of our old hack. Use separated patch for it so it's easier to understand and actually possible to describe. We should ideally get rid of this (and we actually did with kernels 5.15+). Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 6a64eb2664c13bc7d6800747066603c27fcad8e0)
40 lines
1.1 KiB
Diff
40 lines
1.1 KiB
Diff
From: Gabor Juhos <juhosg@openwrt.org>
|
|
Subject: kernel/3.1[02]: move MTD root device setup code to mtdcore
|
|
|
|
The current code only allows to automatically set
|
|
root device on MTD partitions. Move the code to MTD
|
|
core to allow to use it with all MTD devices.
|
|
|
|
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|
---
|
|
drivers/mtd/mtdcore.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
--- a/drivers/mtd/mtdcore.c
|
|
+++ b/drivers/mtd/mtdcore.c
|
|
@@ -27,6 +27,7 @@
|
|
#include <linux/reboot.h>
|
|
#include <linux/leds.h>
|
|
#include <linux/debugfs.h>
|
|
+#include <linux/root_dev.h>
|
|
#include <linux/nvmem-provider.h>
|
|
|
|
#include <linux/mtd/mtd.h>
|
|
@@ -759,6 +760,16 @@ 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") &&
|
|
+ IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) &&
|
|
+ ROOT_DEV == 0) {
|
|
+ unsigned int index = mtd->index;
|
|
+ pr_notice("mtd: device %d (%s) set to be root filesystem\n",
|
|
+ mtd->index, mtd->name);
|
|
+ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, index);
|
|
+ }
|
|
+
|
|
return 0;
|
|
|
|
fail_nvmem_add:
|