[MTD] mtdoops: allow MTD selection by name
Linux-MTD Mailing List
linux-mtd at lists.infradead.org
Fri Mar 20 14:59:57 EDT 2009
Gitweb: http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=e2a0f25b4f520adbd82c0caafcde0470ed11053d
Commit: e2a0f25b4f520adbd82c0caafcde0470ed11053d
Parent: f271049e2010b918f83dc1c7bbd5d75f4710506a
Author: Adrian Hunter <ext-adrian.hunter at nokia.com>
AuthorDate: Mon Feb 16 18:21:35 2009 +0200
Committer: David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Fri Mar 20 18:38:58 2009 +0000
[MTD] mtdoops: allow MTD selection by name
MTD's have both an index number and a name. Formerly,
the MTD selected for mtdoops was done only by index
number. With this patch, a name can be used instead.
For example, the kernel command line:
console=ttyMTD5
selects MTD 5 for mtdoops. But now this is also possible:
console=ttyMTD,log
which selects the MTD named "log" for mtdoops.
This has the advantage that partitions can be added or
removed that would affect the MTD index number but not the
name, without having to then change the kernel command line.
Signed-off-by: Adrian Hunter <ext-adrian.hunter at nokia.com>
Acked-by: Richard Purdie <rpurdie at linux.intel.com>
Acked-by: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
drivers/mtd/mtdoops.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c
index 1a6b3be..fdf504f 100644
--- a/drivers/mtd/mtdoops.c
+++ b/drivers/mtd/mtdoops.c
@@ -44,6 +44,7 @@ static struct mtdoops_context {
int oops_pages;
int nextpage;
int nextcount;
+ char *name;
void *oops_buf;
@@ -273,6 +274,9 @@ static void mtdoops_notify_add(struct mtd_info *mtd)
{
struct mtdoops_context *cxt = &oops_cxt;
+ if (cxt->name && !strcmp(mtd->name, cxt->name))
+ cxt->mtd_index = mtd->index;
+
if ((mtd->index != cxt->mtd_index) || cxt->mtd_index < 0)
return;
@@ -383,8 +387,12 @@ static int __init mtdoops_console_setup(struct console *co, char *options)
{
struct mtdoops_context *cxt = co->data;
- if (cxt->mtd_index != -1)
+ if (cxt->mtd_index != -1 || cxt->name)
return -EBUSY;
+ if (options) {
+ cxt->name = kstrdup(options, GFP_KERNEL);
+ return 0;
+ }
if (co->index == -1)
return -EINVAL;
@@ -432,6 +440,7 @@ static void __exit mtdoops_console_exit(void)
unregister_mtd_user(&mtdoops_notifier);
unregister_console(&mtdoops_console);
+ kfree(cxt->name);
vfree(cxt->oops_buf);
}
More information about the linux-mtd-cvs
mailing list