From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Yue Haibing <yuehaibing@huawei.com>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
Sasha Levin <sashal@kernel.org>,
netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.9 08/28] fm10k: Fix a potential NULL pointer dereference
Date: Wed, 24 Apr 2019 10:49:52 -0400 [thread overview]
Message-ID: <20190424145012.30886-8-sashal@kernel.org> (raw)
In-Reply-To: <20190424145012.30886-1-sashal@kernel.org>
From: Yue Haibing <yuehaibing@huawei.com>
[ Upstream commit 01ca667133d019edc9f0a1f70a272447c84ec41f ]
Syzkaller report this:
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] SMP KASAN PTI
CPU: 0 PID: 4378 Comm: syz-executor.0 Tainted: G C 5.0.0+ #5
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:__lock_acquire+0x95b/0x3200 kernel/locking/lockdep.c:3573
Code: 00 0f 85 28 1e 00 00 48 81 c4 08 01 00 00 5b 5d 41 5c 41 5d 41 5e 41 5f c3 4c 89 ea 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 <80> 3c 02 00 0f 85 cc 24 00 00 49 81 7d 00 e0 de 03 a6 41 bc 00 00
RSP: 0018:ffff8881e3c07a40 EFLAGS: 00010002
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000000080
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: ffff8881e3c07d98 R11: ffff8881c7f21f80 R12: 0000000000000001
R13: 0000000000000080 R14: 0000000000000000 R15: 0000000000000001
FS: 00007fce2252e700(0000) GS:ffff8881f2400000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fffc7eb0228 CR3: 00000001e5bea002 CR4: 00000000007606f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
Call Trace:
lock_acquire+0xff/0x2c0 kernel/locking/lockdep.c:4211
__mutex_lock_common kernel/locking/mutex.c:925 [inline]
__mutex_lock+0xdf/0x1050 kernel/locking/mutex.c:1072
drain_workqueue+0x24/0x3f0 kernel/workqueue.c:2934
destroy_workqueue+0x23/0x630 kernel/workqueue.c:4319
__do_sys_delete_module kernel/module.c:1018 [inline]
__se_sys_delete_module kernel/module.c:961 [inline]
__x64_sys_delete_module+0x30c/0x480 kernel/module.c:961
do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x462e99
Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fce2252dc58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0
RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000140
RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fce2252e6bc
R13: 00000000004bcca9 R14: 00000000006f6b48 R15: 00000000ffffffff
If alloc_workqueue fails, it should return -ENOMEM, otherwise may
trigger this NULL pointer dereference while unloading drivers.
Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: 0a38c17a21a0 ("fm10k: Remove create_workqueue")
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/intel/fm10k/fm10k_main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
index 2aae6f88dca0..a52663745051 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
@@ -58,6 +58,8 @@ static int __init fm10k_init_module(void)
/* create driver workqueue */
fm10k_workqueue = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0,
fm10k_driver_name);
+ if (!fm10k_workqueue)
+ return -ENOMEM;
fm10k_dbg_init();
--
2.19.1
next prev parent reply other threads:[~2019-04-24 14:56 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-24 14:49 [PATCH AUTOSEL 4.9 01/28] HID: logitech: check the return value of create_singlethread_workqueue Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 02/28] HID: debug: fix race condition with between rdesc_show() and device removal Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 03/28] rtc: sh: Fix invalid alarm warning for non-enabled alarm Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 04/28] batman-adv: Reduce claim hash refcnt only for removed entry Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 05/28] batman-adv: Reduce tt_local " Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 06/28] batman-adv: Reduce tt_global " Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 07/28] igb: Fix WARN_ONCE on runtime suspend Sasha Levin
2019-04-24 14:49 ` Sasha Levin [this message]
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 09/28] net/mlx5: E-Switch, Fix esw manager vport indication for more vport commands Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 10/28] bonding: show full hw address in sysfs for slave entries Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 11/28] net: stmmac: don't overwrite discard_frame status Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 12/28] net: stmmac: fix dropping of multi-descriptor RX frames Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 13/28] net: stmmac: don't log oversized frames Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 14/28] jffs2: fix use-after-free on symlink traversal Sasha Levin
2019-04-24 14:49 ` [PATCH AUTOSEL 4.9 15/28] debugfs: " Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 16/28] rtc: da9063: set uie_unsupported when relevant Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 17/28] vfio/pci: use correct format characters Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 18/28] scsi: core: add new RDAC LENOVO/DE_Series device Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 19/28] scsi: storvsc: Fix calculation of sub-channel count Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 20/28] net: hns: fix KASAN: use-after-free in hns_nic_net_xmit_hw() Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 21/28] net: hns: Use NAPI_POLL_WEIGHT for hns driver Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 22/28] net: hns: Fix WARNING when remove HNS driver with SMMU enabled Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 23/28] hugetlbfs: fix memory leak for resv_map Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 24/28] sh: fix multiple function definition build errors Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 25/28] kernel/sysctl.c: fix out-of-bounds access when setting file-max Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 26/28] xsysace: Fix error handling in ace_setup Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 27/28] ARM: orion: don't use using 64-bit DMA masks Sasha Levin
2019-04-24 14:50 ` [PATCH AUTOSEL 4.9 28/28] ARM: iop: " Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190424145012.30886-8-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=jeffrey.t.kirsher@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=yuehaibing@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).