examples/l2fwd-event: fix missing unlock issue

Message ID tencent_3611473A9DDF7023F6228731D03C2FA7F308@qq.com (mailing list archive)
State Changes Requested, archived
Delegated to: Jerin Jacob
Headers
Series examples/l2fwd-event: fix missing unlock issue |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS

Commit Message

Weiguo Li Nov. 4, 2023, 7:21 a.m. UTC
  The function l2fwd_get_free_event_port acquires a lock on
'evt_rsrc->evp.lock' at the beginning. This lock is expected
to be released at the first return statement, when no free
event port is available.

Fixes: 080f57bceca4 ("examples/l2fwd-event: add eventdev main loop")
Cc: stable@dpdk.org

Signed-off-by: Weiguo Li <liweiguo@xencore.cn>
---
 examples/l2fwd-event/l2fwd_event.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Jerin Jacob Kollanukkaran Nov. 4, 2023, 7:51 a.m. UTC | #1
> -----Original Message-----
> From: Weiguo Li <liwg06@foxmail.com>
> Sent: Saturday, November 4, 2023 12:52 PM
> To: Sunil Kumar Kori <skori@marvell.com>; Pavan Nikhilesh Bhagavatula
> <pbhagavatula@marvell.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Weiguo Li <liweiguo@xencore.cn>
> Subject: [EXT] [PATCH] examples/l2fwd-event: fix missing unlock issue
> 
> External Email
> 
> ----------------------------------------------------------------------
> The function l2fwd_get_free_event_port acquires a lock on 'evt_rsrc->evp.lock'
> at the beginning. This lock is expected to be released at the first return
> statement, when no free event port is available.
> 
> Fixes: 080f57bceca4 ("examples/l2fwd-event: add eventdev main loop")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Weiguo Li <liweiguo@xencore.cn>

Please Fix issue found by CI at http://mails.dpdk.org/archives/test-report/2023-November/501341.html

> ---
>  examples/l2fwd-event/l2fwd_event.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-
> event/l2fwd_event.c
> index 4b5a032e35..842fd816e5 100644
> --- a/examples/l2fwd-event/l2fwd_event.c
> +++ b/examples/l2fwd-event/l2fwd_event.c
> @@ -140,6 +140,7 @@ l2fwd_get_free_event_port(struct
> l2fwd_event_resources *evt_rsrc)
> 
>  	rte_spinlock_lock(&evt_rsrc->evp.lock);
>  	if (index >= evt_rsrc->evp.nb_ports) {
> +		rte_spinlock_unlock(&evt_rsrc->evp.lock);
>  		printf("No free event port is available\n");
>  		return -1;
>  	}
> --
> 2.34.1
  

Patch

diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-event/l2fwd_event.c
index 4b5a032e35..842fd816e5 100644
--- a/examples/l2fwd-event/l2fwd_event.c
+++ b/examples/l2fwd-event/l2fwd_event.c
@@ -140,6 +140,7 @@  l2fwd_get_free_event_port(struct l2fwd_event_resources *evt_rsrc)
 
 	rte_spinlock_lock(&evt_rsrc->evp.lock);
 	if (index >= evt_rsrc->evp.nb_ports) {
+		rte_spinlock_unlock(&evt_rsrc->evp.lock);
 		printf("No free event port is available\n");
 		return -1;
 	}