Commit f6979ad
libfc: Fix fc_exch_recv_req() error path
Due to patch "libfc: Do not invoke the response handler after
fc_exch_done()" (commit ID 7030fd6) the lport_recv() call
in fc_exch_recv_req() is passed a dangling pointer. Avoid this
by moving the fc_frame_free() call from fc_invoke_resp() to its
callers. This patch fixes the following crash:
general protection fault: 0000 [SolidRun#3] PREEMPT SMP
RIP: fc_lport_recv_req+0x72/0x280 [libfc]
Call Trace:
fc_exch_recv+0x642/0xde0 [libfc]
fcoe_percpu_receive_thread+0x46a/0x5ed [fcoe]
kthread+0x10a/0x120
ret_from_fork+0x42/0x70
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>1 parent 660d083 commit f6979ad
1 file changed
+4
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
733 | 733 | | |
734 | 734 | | |
735 | 735 | | |
736 | | - | |
737 | | - | |
738 | 736 | | |
739 | 737 | | |
740 | 738 | | |
| |||
1596 | 1594 | | |
1597 | 1595 | | |
1598 | 1596 | | |
1599 | | - | |
| 1597 | + | |
| 1598 | + | |
1600 | 1599 | | |
1601 | 1600 | | |
1602 | 1601 | | |
| |||
1695 | 1694 | | |
1696 | 1695 | | |
1697 | 1696 | | |
1698 | | - | |
| 1697 | + | |
| 1698 | + | |
1699 | 1699 | | |
1700 | 1700 | | |
1701 | 1701 | | |
| |||
0 commit comments