]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.4.154/scsi-fcoe-drop-frames-in-els-logo-error-path.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.4.154 / scsi-fcoe-drop-frames-in-els-logo-error-path.patch
CommitLineData
ef332cb8
GKH
1From foo@baz Tue Aug 28 16:10:37 CEST 2018
2From: Johannes Thumshirn <jthumshirn@suse.de>
3Date: Tue, 31 Jul 2018 15:46:02 +0200
4Subject: scsi: fcoe: drop frames in ELS LOGO error path
5
6From: Johannes Thumshirn <jthumshirn@suse.de>
7
8[ Upstream commit 63d0e3dffda311e77b9a8c500d59084e960a824a ]
9
10Drop the frames in the ELS LOGO error path instead of just returning an
11error.
12
13This fixes the following kmemleak report:
14unreferenced object 0xffff880064cb1000 (size 424):
15 comm "kworker/0:2", pid 24, jiffies 4294904293 (age 68.504s)
16 hex dump (first 32 bytes):
17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
19 backtrace:
20 [<(____ptrval____)>] _fc_frame_alloc+0x2c/0x180 [libfc]
21 [<(____ptrval____)>] fc_lport_enter_logo+0x106/0x360 [libfc]
22 [<(____ptrval____)>] fc_fabric_logoff+0x8c/0xc0 [libfc]
23 [<(____ptrval____)>] fcoe_if_destroy+0x79/0x3b0 [fcoe]
24 [<(____ptrval____)>] fcoe_destroy_work+0xd2/0x170 [fcoe]
25 [<(____ptrval____)>] process_one_work+0x7ff/0x1420
26 [<(____ptrval____)>] worker_thread+0x87/0xef0
27 [<(____ptrval____)>] kthread+0x2db/0x390
28 [<(____ptrval____)>] ret_from_fork+0x35/0x40
29 [<(____ptrval____)>] 0xffffffffffffffff
30
31which can be triggered by issuing
32echo eth0 > /sys/bus/fcoe/ctlr_destroy
33
34Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
35Reviewed-by: Hannes Reinecke <hare@suse.com>
36Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
37Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
38Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
39---
40 drivers/scsi/fcoe/fcoe_ctlr.c | 4 ++--
41 1 file changed, 2 insertions(+), 2 deletions(-)
42
43--- a/drivers/scsi/fcoe/fcoe_ctlr.c
44+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
45@@ -752,9 +752,9 @@ int fcoe_ctlr_els_send(struct fcoe_ctlr
46 case ELS_LOGO:
47 if (fip->mode == FIP_MODE_VN2VN) {
48 if (fip->state != FIP_ST_VNMP_UP)
49- return -EINVAL;
50+ goto drop;
51 if (ntoh24(fh->fh_d_id) == FC_FID_FLOGI)
52- return -EINVAL;
53+ goto drop;
54 } else {
55 if (fip->state != FIP_ST_ENABLED)
56 return 0;