From: dapengx.yu@intel.com
To: beilei.xing@intel.com, xiaoyun.li@intel.com,
wenzhuo.lu@intel.com, bernard.iremonger@intel.com,
stephen@networkplumber.org
Cc: dev@dpdk.org, Dapeng Yu <dapengx.yu@intel.com>, stable@dpdk.org
Subject: [dpdk-dev] [PATCH v2] app/testpmd: avoid exit without terminal restore
Date: Mon, 25 Jan 2021 11:29:53 +0800 [thread overview]
Message-ID: <20210125032953.430840-1-dapengx.yu@intel.com> (raw)
In-Reply-To: <20201224035748.67012-1-dapengx.yu@intel.com>
From: Dapeng Yu <dapengx.yu@intel.com>
In interactive mode, if testpmd exit by calling rte_exit without
restore terminal attributes, terminal will not echo keyboard input.
register a function with atexit() in prompt(), when exit() in
rte_exit() is called, the registered function restores terminal
attributes.
Fixes: 5a8fb55c48ab ("app/testpmd: support unidirectional configuration")
Cc: stable@dpdk.org
Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
---
app/test-pmd/cmdline.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 89034c8b7..f7e18ba3d 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -17116,6 +17116,7 @@ cmdline_read_from_file(const char *filename)
void
prompt(void)
{
+ int ret;
/* initialize non-constant commands */
cmd_set_fwd_mode_init();
cmd_set_fwd_retry_mode_init();
@@ -17123,15 +17124,23 @@ prompt(void)
testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> ");
if (testpmd_cl == NULL)
return;
+
+ ret = atexit(prompt_exit);
+ if (ret != 0)
+ printf("Cannot set exit function for cmdline\n");
+
cmdline_interact(testpmd_cl);
- cmdline_stdin_exit(testpmd_cl);
+ if (ret != 0)
+ cmdline_stdin_exit(testpmd_cl);
}
void
prompt_exit(void)
{
- if (testpmd_cl != NULL)
+ if (testpmd_cl != NULL) {
cmdline_quit(testpmd_cl);
+ cmdline_stdin_exit(testpmd_cl);
+ }
}
static void
--
2.27.0
next prev parent reply other threads:[~2021-01-25 3:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-24 3:57 [dpdk-dev] [PATCH] app/testpmd: avoid exit without resource release dapengx.yu
2020-12-25 3:03 ` Stephen Hemminger
2020-12-25 5:09 ` Yu, DapengX
2021-01-15 3:28 ` Yu, DapengX
2021-01-15 5:50 ` Xing, Beilei
2021-01-15 6:05 ` Yu, DapengX
2021-01-15 9:21 ` Li, Xiaoyun
2021-01-18 11:47 ` Yu, DapengX
2021-01-25 3:29 ` dapengx.yu [this message]
2021-01-26 6:33 ` [dpdk-dev] [PATCH v2] app/testpmd: avoid exit without terminal restore Li, Xiaoyun
2021-01-26 7:13 ` Yu, DapengX
2021-01-26 7:44 ` Yu, DapengX
2021-01-26 8:24 ` Li, Xiaoyun
2021-01-29 10:46 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210125032953.430840-1-dapengx.yu@intel.com \
--to=dapengx.yu@intel.com \
--cc=beilei.xing@intel.com \
--cc=bernard.iremonger@intel.com \
--cc=dev@dpdk.org \
--cc=stable@dpdk.org \
--cc=stephen@networkplumber.org \
--cc=wenzhuo.lu@intel.com \
--cc=xiaoyun.li@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).