提交 1557b9e1 编写于 作者: M Mike Frysinger 提交者: Artem Bityutskiy

UBI: do not abort init when ubi.mtd devices cannot be found

The current ubi.mtd parsing logic will warn & continue on when attaching
the specified mtd device fails (for any reason).  It doesn't however skip
things when the specified mtd device can't be opened.

This scenario can be hit in a couple of different ways such as:
 - build NAND controller driver as a module
 - build UBI into the kernel
 - include ubi.mtd on the kernel command line
 - boot the system
 - MTD devices don't exist, so UBI init fails

This is problematic because failing init means the entire UBI layer is
unavailable until you reboot and modify the kernel command line.  If
we just warn and continue on, /dev/ubi_ctrl is available for userland
to add UBI volumes on the fly once it loads the NAND driver.
Signed-off-by: NMike Frysinger <vapier@gentoo.org>
Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
上级 6fde0f30
...@@ -1261,7 +1261,11 @@ static int __init ubi_init(void) ...@@ -1261,7 +1261,11 @@ static int __init ubi_init(void)
mtd = open_mtd_device(p->name); mtd = open_mtd_device(p->name);
if (IS_ERR(mtd)) { if (IS_ERR(mtd)) {
err = PTR_ERR(mtd); err = PTR_ERR(mtd);
ubi_err("cannot open mtd %s, error %d", p->name, err);
/* See comment below re-ubi_is_module(). */
if (ubi_is_module())
goto out_detach; goto out_detach;
continue;
} }
mutex_lock(&ubi_devices_mutex); mutex_lock(&ubi_devices_mutex);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册