[PATCH 1/1] commands/ubi.c: Add support for VID header offset in ubiattach
Xavier Douville
barebox at douville.org
Fri Feb 8 15:01:53 EST 2013
Hi
On my board I needed to pass a custom VID header offset to ubiattach.
This patch adds the required option to the barebox command.
I also fixed a bug in the error handling of the return value of
ubi_attach_mtd_dev().
This function doesn't always return 0 on success, it returns the UBI number.
So without this patch, an error message is printed when attaching many
UBI devices.
thanks for your work
Xavier Douville
commands/ubi.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/commands/ubi.c b/commands/ubi.c
index 1653eaa..a10ea1c 100644
--- a/commands/ubi.c
+++ b/commands/ubi.c
@@ -60,9 +60,14 @@ static int do_ubiattach(int argc, char *argv[])
{
struct mtd_info_user user;
int fd, ret;
+ int vid_hdr_offset = 0;
- if (argc != 2)
- return COMMAND_ERROR_USAGE;
+ if (argc != 2) {
+ if (argc == 3)
+ vid_hdr_offset = simple_strtol(argv[2], NULL, 0);
+ else
+ return COMMAND_ERROR_USAGE;
+ }
fd = open(argv[1], O_RDWR);
if (fd < 0) {
@@ -71,19 +76,23 @@ static int do_ubiattach(int argc, char *argv[])
}
ret = ioctl(fd, MEMGETINFO, &user);
- if (!ret)
- ret = ubi_attach_mtd_dev(user.mtd, UBI_DEV_NUM_AUTO, 0);
+ if (!ret) {
+ ret = ubi_attach_mtd_dev(user.mtd, UBI_DEV_NUM_AUTO,
vid_hdr_offset);
+ if (ret >= 0) {
+ close(fd);
+ return 0;
+ }
+ }
- if (ret)
- printf("failed to attach: %s\n", strerror(-ret));
+ printf("failed to attach: %s\n", strerror(ret));
close(fd);
- return ret ? 1 : 0;
+ return 1;
}
static const __maybe_unused char cmd_ubiattach_help[] =
-"Usage: ubiattach <mtddev>\n"
+"Usage: ubiattach <mtddev> [vid_hdr_offset]\n"
"Attach <mtddev> to ubi\n";
BAREBOX_CMD_START(ubiattach)
More information about the barebox
mailing list