This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8166

-- gerrit

commit 114123ab42f5c6da5f222b45d410a10cd841370d
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sun Feb 25 23:03:27 2024 +0100

    gdb_server: drop useless check in gdb_keep_client_alive()
    
    OpenOCD can send it's log to gdb, and gdb replies with 'OK'.
    Calls to LOG_XXX() are also present in the code that communicates
    with gdb. This can cause infinite nested calls.
    
    OpenOCD uses the flag 'gdb_con->busy' to protect the communication
    with gdb and prevent nested calls.
    
    There is no reason to check for 'gdb_con->busy' in the code for
    keep-alive, as keep_alive() is never called in this gdb server;
    the flag would eventually be set if the current keep_alive() will
    send something to gdb.
    
    Drop the flag 'gdb_con->busy' in gdb_keep_client_alive().
    While there, document the use of 'gdb_con->busy'.
    
    Change-Id: I1ea20bf96abb5d2f1fcdba1e3861df257c396bb6
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index 2eca3a6312..e992b210ab 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -73,6 +73,8 @@ struct gdb_connection {
        enum target_state frontend_state;
        struct image *vflash_image;
        bool closed;
+       /* set to prevent re-entrance from log messages during gdb_get_packet()
+        * and gdb_put_packet(). */
        bool busy;
        int noack_mode;
        /* set flag to true if you want the next stepi to return immediately.
@@ -3790,11 +3792,6 @@ static void gdb_keep_client_alive(struct connection 
*connection)
 {
        struct gdb_connection *gdb_con = connection->priv;
 
-       if (gdb_con->busy) {
-               /* do not send packets, retry asap */
-               return;
-       }
-
        switch (gdb_con->output_flag) {
        case GDB_OUTPUT_NO:
                /* no need for keep-alive */

-- 

Reply via email to