|
Takashi Iwai |
30eabd |
From e0112a7c9e847ada15a631b88e279d547e8f26a7 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
30eabd |
From: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Takashi Iwai |
30eabd |
Date: Wed, 19 May 2021 17:16:50 +0300
|
|
Takashi Iwai |
30eabd |
Subject: [PATCH] staging: emxx_udc: fix loop in _nbu2ss_nuke()
|
|
Takashi Iwai |
30eabd |
Git-commit: e0112a7c9e847ada15a631b88e279d547e8f26a7
|
|
Takashi Iwai |
30eabd |
Patch-mainline: v5.13-rc4
|
|
Takashi Iwai |
30eabd |
References: git-fixes
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
The _nbu2ss_ep_done() function calls:
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
list_del_init(&req->queue);
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
which means that the loop will never exit.
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
Fixes: ca3d253eb967 ("Staging: emxx_udc: Iterate list using list_for_each_entry")
|
|
Takashi Iwai |
30eabd |
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Takashi Iwai |
30eabd |
Link: https://lore.kernel.org/r/YKUd0sDyjm/lkJfJ@mwanda
|
|
Takashi Iwai |
30eabd |
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Takashi Iwai |
30eabd |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
---
|
|
Takashi Iwai |
30eabd |
drivers/staging/emxx_udc/emxx_udc.c | 4 ++--
|
|
Takashi Iwai |
30eabd |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c
|
|
Takashi Iwai |
30eabd |
index 741147a4f0fe..ecc5c9da9027 100644
|
|
Takashi Iwai |
30eabd |
--- a/drivers/staging/emxx_udc/emxx_udc.c
|
|
Takashi Iwai |
30eabd |
+++ b/drivers/staging/emxx_udc/emxx_udc.c
|
|
Takashi Iwai |
30eabd |
@@ -2064,7 +2064,7 @@ static int _nbu2ss_nuke(struct nbu2ss_udc *udc,
|
|
Takashi Iwai |
30eabd |
struct nbu2ss_ep *ep,
|
|
Takashi Iwai |
30eabd |
int status)
|
|
Takashi Iwai |
30eabd |
{
|
|
Takashi Iwai |
30eabd |
- struct nbu2ss_req *req;
|
|
Takashi Iwai |
30eabd |
+ struct nbu2ss_req *req, *n;
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
/* Endpoint Disable */
|
|
Takashi Iwai |
30eabd |
_nbu2ss_epn_exit(udc, ep);
|
|
Takashi Iwai |
30eabd |
@@ -2076,7 +2076,7 @@ static int _nbu2ss_nuke(struct nbu2ss_udc *udc,
|
|
Takashi Iwai |
30eabd |
return 0;
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
/* called with irqs blocked */
|
|
Takashi Iwai |
30eabd |
- list_for_each_entry(req, &ep->queue, queue) {
|
|
Takashi Iwai |
30eabd |
+ list_for_each_entry_safe(req, n, &ep->queue, queue) {
|
|
Takashi Iwai |
30eabd |
_nbu2ss_ep_done(ep, req, status);
|
|
Takashi Iwai |
30eabd |
}
|
|
Takashi Iwai |
30eabd |
|
|
Takashi Iwai |
30eabd |
--
|
|
Takashi Iwai |
30eabd |
2.26.2
|
|
Takashi Iwai |
30eabd |
|