diff options
author | Kangjie Lu <kjlu@umn.edu> | 2019-04-11 05:17:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-04-11 14:04:08 -0400 |
commit | e183d4e414b64711baf7a04e214b61969ca08dfa (patch) | |
tree | 05cb57ab0507aac5640939c941a924eee866ab31 | |
parent | fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 (diff) |
net/smc: fix a NULL pointer dereference
In case alloc_ordered_workqueue fails, the fix returns NULL
to avoid NULL pointer dereference.
Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/smc/smc_ism.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c index 2fff79db1a59..e89e918b88e0 100644 --- a/net/smc/smc_ism.c +++ b/net/smc/smc_ism.c | |||
@@ -289,6 +289,11 @@ struct smcd_dev *smcd_alloc_dev(struct device *parent, const char *name, | |||
289 | INIT_LIST_HEAD(&smcd->vlan); | 289 | INIT_LIST_HEAD(&smcd->vlan); |
290 | smcd->event_wq = alloc_ordered_workqueue("ism_evt_wq-%s)", | 290 | smcd->event_wq = alloc_ordered_workqueue("ism_evt_wq-%s)", |
291 | WQ_MEM_RECLAIM, name); | 291 | WQ_MEM_RECLAIM, name); |
292 | if (!smcd->event_wq) { | ||
293 | kfree(smcd->conn); | ||
294 | kfree(smcd); | ||
295 | return NULL; | ||
296 | } | ||
292 | return smcd; | 297 | return smcd; |
293 | } | 298 | } |
294 | EXPORT_SYMBOL_GPL(smcd_alloc_dev); | 299 | EXPORT_SYMBOL_GPL(smcd_alloc_dev); |