When flushing input before sending of a boot message the acknowledging
reply for the previous message from the CPU might be discarded and so
missed.

So only flush once before sending boot messages in a loop.

Signed-off-by: Uwe Kleine-König <[email protected]>
---
 scripts/kwboot.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/scripts/kwboot.c b/scripts/kwboot.c
index 9d680dc576a7..9dfaf4a8dfb0 100644
--- a/scripts/kwboot.c
+++ b/scripts/kwboot.c
@@ -273,11 +273,11 @@ kwboot_bootmsg(int tty, void *msg)
        else
                kwboot_printv("Sending boot message. Please reboot the 
target...");
 
-       do {
-               rc = tcflush(tty, TCIOFLUSH);
-               if (rc)
-                       break;
+       rc = tcflush(tty, TCIOFLUSH);
+       if (rc)
+               return rc;
 
+       do {
                rc = kwboot_tty_send(tty, msg, 8);
                if (rc) {
                        usleep(KWBOOT_MSG_REQ_DELAY * 1000);
@@ -302,13 +302,13 @@ kwboot_debugmsg(int tty, void *msg)
 
        kwboot_printv("Sending debug message. Please reboot the target...");
 
+       rc = tcflush(tty, TCIOFLUSH);
+       if (rc)
+               return rc;
+
        do {
                char buf[16];
 
-               rc = tcflush(tty, TCIOFLUSH);
-               if (rc)
-                       break;
-
                rc = kwboot_tty_send(tty, msg, 8);
                if (rc) {
                        usleep(KWBOOT_MSG_REQ_DELAY * 1000);
-- 
2.9.3


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to