Commit 3fccf23e authored by Stefano Babic's avatar Stefano Babic
Browse files

Backport fixes for 2020.04



1078af97a Shellscript stops before completing
e3a6b120f diskpart: force kernel to reread partition table
Signed-off-by: Stefano Babic's avatarStefano Babic <sbabic@denx.de>
parent 3f4d8d7b
From 1078af97a5ac5c3091c8e601b836cd69a7aab7fc Mon Sep 17 00:00:00 2001
From: Stefano Babic <sbabic@denx.de>
Date: Tue, 16 Jun 2020 10:29:55 +0200
Subject: [PATCH] Shellscript stops before completing
Commit 8fb94d7 reworks the way shell script are called, redirecting
stdout and stderr to SWUpdate. A shell script runs then in a child
process. Under some circumstances, SWUpdate closes the forked process
before the child process completes.
Be sure that the child process has terminated before to go on.
Signed-off-by: Stefano Babic <sbabic@denx.de>
Reported-by: Piotr Piwko <piotr.piwko@gmail.com>
Tested-by: Piotr Piwko <piotr.piwko@gmail.com>
---
core/pctl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/pctl.c b/core/pctl.c
index 8b1c667..01ad540 100644
--- a/core/pctl.c
+++ b/core/pctl.c
@@ -263,6 +263,7 @@ int run_system_cmd(const char *cmd)
}
} else {
int fds[2];
+ pid_t w;
close(stdoutpipe[PIPE_WRITE]);
close(stderrpipe[PIPE_WRITE]);
@@ -276,7 +277,6 @@ int run_system_cmd(const char *cmd)
* and from stderr (of the child process) as ERROR
*/
do {
- pid_t w;
int n1 = 0;
struct timeval tv;
fd_set readfds;
@@ -373,7 +373,7 @@ int run_system_cmd(const char *cmd)
}
}
} while (ret > 0 && n1 > 0);
- } while (!WIFEXITED(wstatus));
+ } while (w != process_id);
close(stdoutpipe[PIPE_READ]);
close(stderrpipe[PIPE_READ]);
--
2.25.1
From e3a6b120ff88f6dc34570002de97754b607966ec Mon Sep 17 00:00:00 2001
From: Stefano Babic <sbabic@denx.de>
Date: Tue, 9 Jun 2020 13:58:06 +0000
Subject: [PATCH] diskpart: force kernel to reread partition table
After writing a partition table to disk, the kernel should be informed
(like the partconf tool does), else it is not possible to install images
in the new created partitions.
Signed-off-by: Stefano Babic <sbabic@denx.de>
---
handlers/diskpart_handler.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/handlers/diskpart_handler.c b/handlers/diskpart_handler.c
index 16adc17..372412b 100644
--- a/handlers/diskpart_handler.c
+++ b/handlers/diskpart_handler.c
@@ -273,7 +273,8 @@ static int diskpart(struct img_type *img,
/*
* Everything done, write into disk
*/
- ret = fdisk_write_disklabel(cxt);
+ ret = fdisk_write_disklabel(cxt) |
+ fdisk_reread_partition_table(cxt);
handler_exit:
if (fdisk_deassign_device(cxt, 0))
--
2.25.1
......@@ -2,5 +2,8 @@ require swupdate.inc
SRCREV = "1a6dfbb5a0be978ac1a159758e278ab4d44167e2"
SRC_URI += "file://0001-diskpart-force-kernel-to-reread-partition-table.patch \
file://0001-Shellscript-stops-before-completing.patch"
# Building out of tree is broken in this version
B = "${S}"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment