From: "Li, Xiaoyun" <xiaoyun.li@intel.com> To: "Yu, DapengX" <dapengx.yu@intel.com>, "Xing, Beilei" <beilei.xing@intel.com>, "Lu, Wenzhuo" <wenzhuo.lu@intel.com>, "Iremonger, Bernard" <bernard.iremonger@intel.com>, "stephen@networkplumber.org" <stephen@networkplumber.org> Cc: "dev@dpdk.org" <dev@dpdk.org>, "Yu, DapengX" <dapengx.yu@intel.com>, "stable@dpdk.org" <stable@dpdk.org> Subject: Re: [dpdk-dev] [PATCH v2] app/testpmd: avoid exit without terminal restore Date: Tue, 26 Jan 2021 06:33:02 +0000 Message-ID: <CY4PR11MB175014EA4024C26925443AD599BC9@CY4PR11MB1750.namprd11.prod.outlook.com> (raw) In-Reply-To: <20210125032953.430840-1-dapengx.yu@intel.com> Hi > -----Original Message----- > From: dapengx.yu@intel.com <dapengx.yu@intel.com> > Sent: Monday, January 25, 2021 11:30 > To: Xing, Beilei <beilei.xing@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; Lu, > Wenzhuo <wenzhuo.lu@intel.com>; Iremonger, Bernard > <bernard.iremonger@intel.com>; stephen@networkplumber.org > Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org > Subject: [PATCH v2] app/testpmd: avoid exit without terminal restore > > 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) Why do you need to check ret here? Even if registers prompt_exit failed, when users type "quit" and then break from cmdline_interact(), cmdline_stdin_exit() should be called to restore terminal settings. > + 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-26 6:33 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 ` [dpdk-dev] [PATCH v2] app/testpmd: avoid exit without terminal restore dapengx.yu 2021-01-26 6:33 ` Li, Xiaoyun [this message] 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=CY4PR11MB175014EA4024C26925443AD599BC9@CY4PR11MB1750.namprd11.prod.outlook.com \ --to=xiaoyun.li@intel.com \ --cc=beilei.xing@intel.com \ --cc=bernard.iremonger@intel.com \ --cc=dapengx.yu@intel.com \ --cc=dev@dpdk.org \ --cc=stable@dpdk.org \ --cc=stephen@networkplumber.org \ --cc=wenzhuo.lu@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
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git