git: 345739ccaccc - stable/13 - cfiscsi_done: Free the dummy PDU earlier.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 29 Apr 2022 23:12:42 UTC
The branch stable/13 has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=345739ccaccce822a24a5ef9121accce541ed6de
commit 345739ccaccce822a24a5ef9121accce541ed6de
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-02-07 20:55:08 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-04-29 23:07:49 +0000
cfiscsi_done: Free the dummy PDU earlier.
The dummy PDU needs to be freed before marking task abortion complete
as otherwise cfiscsi_session_terminate_tasks can return and destroy
the session in another thread before the PDU is freed.
Fixes: 2e8d1a55258d iscsi: Allocate a dummy PDU for the internal nexus reset task.
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D34176
(cherry picked from commit a3d71fffa78619fb394b8bb595d2ef680bd0e43a)
---
sys/cam/ctl/ctl_frontend_iscsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/cam/ctl/ctl_frontend_iscsi.c b/sys/cam/ctl/ctl_frontend_iscsi.c
index 1d7ed8ef87ef..87cf173ca8fe 100644
--- a/sys/cam/ctl/ctl_frontend_iscsi.c
+++ b/sys/cam/ctl/ctl_frontend_iscsi.c
@@ -3062,11 +3062,11 @@ cfiscsi_done(union ctl_io *io)
/*
* Implicit task termination has just completed; nothing to do.
*/
+ icl_pdu_free(request);
cs->cs_tasks_aborted = true;
refcount_release(&cs->cs_outstanding_ctl_pdus);
wakeup(__DEVOLATILE(void *, &cs->cs_outstanding_ctl_pdus));
ctl_free_io(io);
- icl_pdu_free(request);
return;
default:
panic("cfiscsi_done called with wrong opcode 0x%x",