--- /dev/null
+From 305a7a5a74a612801d9df2b2efc86dd952b8c4e7 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>
+Signed-off-by: Joris Offouga <offougajoris@gmail.com>
+---
+ 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
+
--- /dev/null
+From bd08e45d7b25f06da2fc6dc824146b471db5f1f4 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>
+Signed-off-by: Joris Offouga <offougajoris@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
+