diff options
| author | Anant Goel <anantg@codeaurora.org> | 2018-06-14 18:40:51 -0700 |
|---|---|---|
| committer | Anant Goel <anantg@codeaurora.org> | 2018-06-15 13:32:42 -0700 |
| commit | a6672f6af9009ed68e431211e683f1d29a57b40e (patch) | |
| tree | fb3c64872e103d4625a647703e07d857a7961501 | |
| parent | 53c73b71906f5ce07686603d9ff7fb20a06d296e (diff) | |
soc: qcom: subsystem_restart: Add checks to verify validity of a device
Extra checks are added to ensure a subsystem device is valid before
accessing any of its fields.
Change-Id: Ia8e3dced005485b1edb5d6ccf9429f90d31fa613
Signed-off-by: Anant Goel <anantg@codeaurora.org>
| -rw-r--r-- | drivers/soc/qcom/subsystem_restart.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/soc/qcom/subsystem_restart.c b/drivers/soc/qcom/subsystem_restart.c index ae249f382339..ea94456ccef8 100644 --- a/drivers/soc/qcom/subsystem_restart.c +++ b/drivers/soc/qcom/subsystem_restart.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2011-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -1083,7 +1083,7 @@ int subsystem_restart_dev(struct subsys_device *dev) { const char *name; - if (!get_device(&dev->dev)) + if ((!dev) || !get_device(&dev->dev)) return -ENODEV; if (!try_module_get(dev->owner)) { @@ -1177,11 +1177,21 @@ EXPORT_SYMBOL(subsystem_crashed); void subsys_set_crash_status(struct subsys_device *dev, enum crash_status crashed) { + if (!dev) { + pr_err("Invalid subsystem device\n"); + return; + } + dev->crashed = crashed; } enum crash_status subsys_get_crash_status(struct subsys_device *dev) { + if (!dev) { + pr_err("Invalid subsystem device\n"); + return CRASH_STATUS_NO_CRASH; + } + return dev->crashed; } |
