Javed Hasan
eb859b043c
scsi: qedf: Add check to synchronize abort and flush
...
[ Upstream commit df99446d5c
]
A race condition was observed between qedf_cleanup_fcport() and
qedf_process_error_detect()->qedf_initiate_abts():
[2069091.203145] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
[2069091.213100] IP: [<ffffffffc0666cc6>] qedf_process_error_detect+0x96/0x130 [qedf]
[2069091.223391] PGD 1943049067 PUD 194304e067 PMD 0
[2069091.233420] Oops: 0000 [#1 ] SMP
[2069091.361820] CPU: 1 PID: 14751 Comm: kworker/1:46 Kdump: loaded Tainted: P OE ------------ 3.10.0-1160.25.1.el7.x86_64 #1
[2069091.388474] Hardware name: HPE Synergy 480 Gen10/Synergy 480 Gen10 Compute Module, BIOS I42 04/08/2020
[2069091.402148] Workqueue: qedf_io_wq qedf_fp_io_handler [qedf]
[2069091.415780] task: ffff9bb9f5190000 ti: ffff9bacaef9c000 task.ti: ffff9bacaef9c000
[2069091.429590] RIP: 0010:[<ffffffffc0666cc6>] [<ffffffffc0666cc6>] qedf_process_error_detect+0x96/0x130 [qedf]
[2069091.443666] RSP: 0018:ffff9bacaef9fdb8 EFLAGS: 00010246
[2069091.457692] RAX: 0000000000000000 RBX: ffff9bbbbbfb18a0 RCX: ffffffffc0672310
[2069091.471997] RDX: 00000000000005de RSI: ffffffffc066e7f0 RDI: ffff9beb3f4538d8
[2069091.486130] RBP: ffff9bacaef9fdd8 R08: 0000000000006000 R09: 0000000000006000
[2069091.500321] R10: 0000000000001551 R11: ffffb582996ffff8 R12: ffffb5829b39cc18
[2069091.514779] R13: ffff9badab380c28 R14: ffffd5827f643900 R15: 0000000000000040
[2069091.529472] FS: 0000000000000000(0000) GS:ffff9beb3f440000(0000) knlGS:0000000000000000
[2069091.543926] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[2069091.558942] CR2: 0000000000000030 CR3: 000000193b9a2000 CR4: 00000000007607e0
[2069091.573424] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[2069091.587876] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[2069091.602007] PKRU: 00000000
[2069091.616010] Call Trace:
[2069091.629902] [<ffffffffc0663969>] qedf_process_cqe+0x109/0x2e0 [qedf]
[2069091.643941] [<ffffffffc0663b66>] qedf_fp_io_handler+0x26/0x60 [qedf]
[2069091.657948] [<ffffffff85ebddcf>] process_one_work+0x17f/0x440
[2069091.672111] [<ffffffff85ebeee6>] worker_thread+0x126/0x3c0
[2069091.686057] [<ffffffff85ebedc0>] ? manage_workers.isra.26+0x2a0/0x2a0
[2069091.700033] [<ffffffff85ec5da1>] kthread+0xd1/0xe0
[2069091.713891] [<ffffffff85ec5cd0>] ? insert_kthread_work+0x40/0x40
Add check in qedf_process_error_detect(). When flush is active, let the
cmds be completed from the cleanup contex.
Link: https://lore.kernel.org/r/20210624171802.598-1-jhasan@marvell.com
Signed-off-by: Javed Hasan <jhasan@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-07-25 14:36:16 +02:00
..
2020-12-30 11:53:02 +01:00
2021-07-25 14:36:16 +02:00
2021-07-25 14:36:16 +02:00
2021-07-20 16:05:39 +02:00
2020-10-14 15:15:35 -07:00
2021-07-20 16:05:58 +02:00
2020-10-23 16:19:02 -07:00
2021-06-16 12:01:36 +02:00
2021-07-20 16:05:41 +02:00
2020-10-14 15:15:35 -07:00
2021-07-20 16:05:41 +02:00
2020-10-16 12:21:15 -07:00
2021-07-20 16:05:59 +02:00
2020-03-11 23:07:59 -04:00
2020-10-14 15:15:35 -07:00
2020-10-23 16:19:02 -07:00
2021-02-07 15:37:14 +01:00
2021-07-25 14:36:16 +02:00
2021-05-14 09:50:27 +02:00
2020-08-23 17:36:59 -05:00
2021-07-25 14:36:16 +02:00
2021-07-25 14:36:16 +02:00
2021-07-25 14:36:16 +02:00
2021-07-20 16:05:40 +02:00
2021-07-20 16:05:41 +02:00
2021-07-20 16:05:40 +02:00
2021-07-25 14:36:16 +02:00
2020-08-23 17:36:59 -05:00
2021-07-25 14:36:16 +02:00
2021-07-25 14:36:16 +02:00
2021-07-20 16:05:41 +02:00
2021-06-16 12:01:37 +02:00
2020-10-23 16:19:02 -07:00
2021-05-11 14:47:27 +02:00
2020-10-07 23:50:03 -04:00
2020-10-23 16:19:02 -07:00
2021-06-03 09:00:43 +02:00
2020-03-25 11:50:48 +01:00
2019-02-25 21:37:25 -05:00
2019-03-02 11:39:54 -08:00
2019-10-23 17:23:44 +02:00
2020-10-23 16:19:02 -07:00
2020-09-25 06:20:43 +02:00
2019-01-08 07:58:37 -05:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2019-05-21 10:50:45 +02:00
2020-02-18 00:39:54 -05:00
2020-07-08 01:12:53 -04:00
2019-05-21 10:50:45 +02:00
2020-03-26 21:10:53 -04:00
2019-05-21 10:50:45 +02:00
2019-11-12 22:21:34 -05:00
2019-11-12 22:21:35 -05:00
2021-06-03 09:00:43 +02:00
2021-06-03 09:00:43 +02:00
2019-05-21 10:50:45 +02:00
2020-02-24 14:54:25 -05:00
2020-04-01 22:03:04 -04:00
2020-10-07 21:48:28 -04:00
2019-05-24 17:36:45 +02:00
2020-09-01 22:15:47 -04:00
2020-03-11 23:07:59 -04:00
2020-08-23 17:36:59 -05:00
2019-12-19 22:08:51 -05:00
2020-09-02 22:49:07 -04:00
2019-06-18 19:46:18 -04:00
2019-07-30 12:17:28 -04:00
2020-07-08 01:12:44 -04:00
2021-07-14 16:56:40 +02:00
2020-08-23 17:36:59 -05:00
2019-01-08 21:58:35 -05:00
2020-03-17 13:36:10 -04:00
2019-01-08 21:57:42 -05:00
2020-10-07 21:48:28 -04:00
2019-01-08 21:58:35 -05:00
2020-06-09 09:39:13 -07:00
2021-07-20 16:05:40 +02:00
2020-09-02 22:49:06 -04:00
2020-10-29 21:55:21 -04:00
2020-09-02 22:49:06 -04:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:36:37 +02:00
2020-08-23 17:36:59 -05:00
2020-10-07 21:48:28 -04:00
2020-08-06 16:50:07 -07:00
2020-07-15 17:26:58 -04:00
2020-07-24 22:32:00 -04:00
2020-06-02 21:23:47 -04:00
2020-10-13 12:12:44 -07:00
2019-05-30 11:26:37 -07:00
2021-05-14 09:50:27 +02:00
2020-07-24 22:09:55 -04:00
2020-06-09 09:39:13 -07:00
2020-10-02 15:27:08 -07:00
2021-07-20 16:05:41 +02:00
2020-06-09 09:39:13 -07:00
2020-10-02 21:52:53 -04:00
2019-11-12 22:21:34 -05:00
2019-07-17 22:39:27 +09:00
2020-10-14 15:15:35 -07:00
2020-08-23 17:36:59 -05:00
2019-05-21 10:50:45 +02:00
2020-06-09 09:39:13 -07:00
2020-10-02 21:42:22 -04:00
2020-03-11 23:07:56 -04:00
2020-10-23 16:19:02 -07:00
2020-01-02 21:57:44 -05:00
2021-03-25 09:04:09 +01:00
2020-01-02 21:57:44 -05:00
2020-08-23 17:36:59 -05:00
2019-05-24 17:36:45 +02:00
2020-08-23 17:36:59 -05:00
2019-06-20 15:37:02 -04:00
2020-09-15 17:34:18 -04:00
2019-05-24 17:39:02 +02:00
2020-09-09 22:40:41 -04:00
2020-03-11 23:07:56 -04:00
2020-08-23 17:36:59 -05:00
2019-05-30 11:26:38 -07:00
2020-09-09 22:37:48 -04:00
2020-01-15 23:09:11 -05:00
2019-03-19 17:11:37 -04:00
2020-10-14 15:15:35 -07:00
2019-02-13 22:07:03 -05:00
2019-06-05 17:37:17 +02:00
2019-05-24 17:36:45 +02:00
2021-02-17 11:02:27 +01:00
2019-07-30 12:42:55 -04:00
2019-05-21 06:16:21 -04:00
2021-06-18 10:00:05 +02:00
2020-07-08 01:16:23 -04:00
2020-10-14 15:15:35 -07:00
2020-08-23 17:36:59 -05:00
2021-07-20 16:05:40 +02:00
2020-07-24 22:09:57 -04:00
2019-12-19 22:08:54 -05:00
2019-05-30 11:26:35 -07:00
2020-07-24 22:09:55 -04:00
2020-10-02 18:53:06 -04:00
2020-02-04 03:05:26 +00:00
2020-10-26 16:05:34 -04:00
2019-05-30 11:29:53 -07:00
2020-10-06 08:33:44 -06:00
2020-03-16 22:08:36 -04:00
2020-09-02 22:49:07 -04:00
2021-07-20 16:05:41 +02:00
2021-07-20 16:05:40 +02:00
2021-01-12 20:18:15 +01:00
2021-04-21 13:00:52 +02:00
2020-06-19 23:06:43 -04:00
2020-03-24 07:57:08 -06:00
2019-06-05 17:37:14 +02:00
2021-03-04 11:38:21 +01:00
2021-07-20 16:05:40 +02:00
2020-10-14 15:15:35 -07:00
2020-09-15 20:28:06 -04:00
2019-07-11 15:14:01 -07:00
2020-10-03 00:02:13 -04:00
2020-09-25 06:20:44 +02:00
2019-05-24 17:36:45 +02:00
2021-05-14 09:50:27 +02:00
2020-02-24 14:59:01 -05:00
2021-07-20 16:05:40 +02:00
2020-02-24 15:01:57 -05:00
2021-04-07 15:00:05 +02:00
2020-03-11 23:07:56 -04:00
2021-07-20 16:05:43 +02:00
2020-08-23 17:36:59 -05:00
2021-05-14 09:50:27 +02:00
2020-10-02 21:52:55 -04:00
2020-10-14 15:15:35 -07:00
2021-06-16 12:01:37 +02:00
2020-08-23 17:36:59 -05:00
2019-05-24 17:39:02 +02:00
2019-07-11 15:14:01 -07:00
2020-08-23 17:36:59 -05:00
2020-01-06 09:45:59 +01:00
2019-05-21 10:50:45 +02:00
2020-06-09 09:39:13 -07:00