[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openocd-development
Subject:    [PATCH]: 114123ab42 gdb_server: drop useless check in gdb_keep_client_alive()
From:       gerrit () openocd ! org
Date:       2024-02-26 17:16:31
Message-ID: 20240226171631.79946194 () openocd ! org
[Download RAW message or body]

This is an automated email from Gerrit.

"Antonio Borneo <borneo.antonio@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.antonio@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.antonio@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 */

-- 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic