tools/bootconfig: Suppress non-error messages
Suppress non-error messages when applying new bootconfig to initrd image. To enable it, replace printf for error message with pr_err() macro. This also adds a testcase for this fix. Link: http://lkml.kernel.org/r/158125351377.16911.13283712972275131160.stgit@devnote2 Reported-by: Michael Ellerman <mpe@ellerman.id.au> Tested-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Родитель
a91e4f12ff
Коммит
9737800111
|
@ -140,7 +140,7 @@ int load_xbc_from_initrd(int fd, char **buf)
|
|||
return 0;
|
||||
|
||||
if (lseek(fd, -8, SEEK_END) < 0) {
|
||||
printf("Failed to lseek: %d\n", -errno);
|
||||
pr_err("Failed to lseek: %d\n", -errno);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ int load_xbc_from_initrd(int fd, char **buf)
|
|||
return 0;
|
||||
|
||||
if (lseek(fd, stat.st_size - 8 - size, SEEK_SET) < 0) {
|
||||
printf("Failed to lseek: %d\n", -errno);
|
||||
pr_err("Failed to lseek: %d\n", -errno);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
|
@ -166,7 +166,7 @@ int load_xbc_from_initrd(int fd, char **buf)
|
|||
/* Wrong Checksum, maybe no boot config here */
|
||||
rcsum = checksum((unsigned char *)*buf, size);
|
||||
if (csum != rcsum) {
|
||||
printf("checksum error: %d != %d\n", csum, rcsum);
|
||||
pr_err("checksum error: %d != %d\n", csum, rcsum);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -185,13 +185,13 @@ int show_xbc(const char *path)
|
|||
|
||||
fd = open(path, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
printf("Failed to open initrd %s: %d\n", path, fd);
|
||||
pr_err("Failed to open initrd %s: %d\n", path, fd);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
ret = load_xbc_from_initrd(fd, &buf);
|
||||
if (ret < 0)
|
||||
printf("Failed to load a boot config from initrd: %d\n", ret);
|
||||
pr_err("Failed to load a boot config from initrd: %d\n", ret);
|
||||
else
|
||||
xbc_show_compact_tree();
|
||||
|
||||
|
@ -209,7 +209,7 @@ int delete_xbc(const char *path)
|
|||
|
||||
fd = open(path, O_RDWR);
|
||||
if (fd < 0) {
|
||||
printf("Failed to open initrd %s: %d\n", path, fd);
|
||||
pr_err("Failed to open initrd %s: %d\n", path, fd);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ int delete_xbc(const char *path)
|
|||
pr_output = 1;
|
||||
if (size < 0) {
|
||||
ret = size;
|
||||
printf("Failed to load a boot config from initrd: %d\n", ret);
|
||||
pr_err("Failed to load a boot config from initrd: %d\n", ret);
|
||||
} else if (size > 0) {
|
||||
ret = fstat(fd, &stat);
|
||||
if (!ret)
|
||||
|
@ -245,7 +245,7 @@ int apply_xbc(const char *path, const char *xbc_path)
|
|||
|
||||
ret = load_xbc_file(xbc_path, &buf);
|
||||
if (ret < 0) {
|
||||
printf("Failed to load %s : %d\n", xbc_path, ret);
|
||||
pr_err("Failed to load %s : %d\n", xbc_path, ret);
|
||||
return ret;
|
||||
}
|
||||
size = strlen(buf) + 1;
|
||||
|
@ -262,7 +262,7 @@ int apply_xbc(const char *path, const char *xbc_path)
|
|||
/* Check the data format */
|
||||
ret = xbc_init(buf);
|
||||
if (ret < 0) {
|
||||
printf("Failed to parse %s: %d\n", xbc_path, ret);
|
||||
pr_err("Failed to parse %s: %d\n", xbc_path, ret);
|
||||
free(data);
|
||||
free(buf);
|
||||
return ret;
|
||||
|
@ -279,20 +279,20 @@ int apply_xbc(const char *path, const char *xbc_path)
|
|||
/* Remove old boot config if exists */
|
||||
ret = delete_xbc(path);
|
||||
if (ret < 0) {
|
||||
printf("Failed to delete previous boot config: %d\n", ret);
|
||||
pr_err("Failed to delete previous boot config: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Apply new one */
|
||||
fd = open(path, O_RDWR | O_APPEND);
|
||||
if (fd < 0) {
|
||||
printf("Failed to open %s: %d\n", path, fd);
|
||||
pr_err("Failed to open %s: %d\n", path, fd);
|
||||
return fd;
|
||||
}
|
||||
/* TODO: Ensure the @path is initramfs/initrd image */
|
||||
ret = write(fd, data, size + 8);
|
||||
if (ret < 0) {
|
||||
printf("Failed to apply a boot config: %d\n", ret);
|
||||
pr_err("Failed to apply a boot config: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
close(fd);
|
||||
|
@ -334,12 +334,12 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
if (apply && delete) {
|
||||
printf("Error: You can not specify both -a and -d at once.\n");
|
||||
pr_err("Error: You can not specify both -a and -d at once.\n");
|
||||
return usage();
|
||||
}
|
||||
|
||||
if (optind >= argc) {
|
||||
printf("Error: No initrd is specified.\n");
|
||||
pr_err("Error: No initrd is specified.\n");
|
||||
return usage();
|
||||
}
|
||||
|
||||
|
|
|
@ -64,6 +64,15 @@ echo "File size check"
|
|||
new_size=$(stat -c %s $INITRD)
|
||||
xpass test $new_size -eq $initrd_size
|
||||
|
||||
echo "No error messge while applying"
|
||||
OUTFILE=`mktemp tempout-XXXX`
|
||||
dd if=/dev/zero of=$INITRD bs=4096 count=1
|
||||
printf " \0\0\0 \0\0\0" >> $INITRD
|
||||
$BOOTCONF -a $TEMPCONF $INITRD > $OUTFILE 2>&1
|
||||
xfail grep -i "failed" $OUTFILE
|
||||
xfail grep -i "error" $OUTFILE
|
||||
rm $OUTFILE
|
||||
|
||||
echo "Max node number check"
|
||||
|
||||
echo -n > $TEMPCONF
|
||||
|
|
Загрузка…
Ссылка в новой задаче