* [PATCH v2][RESEND] cpuidle: Add checks to avoid NULL pointer dereference
@ 2012-04-30 7:00 Srivatsa S. Bhat
0 siblings, 0 replies; only message in thread
From: Srivatsa S. Bhat @ 2012-04-30 7:00 UTC (permalink / raw)
To: lenb, Rafael J. Wysocki, akpm@linux-foundation.org
Cc: Daniel Lezcano, khilman, Deepthi Dharwar, g.trinabh,
Arjan van de Ven, linux-kernel@vger.kernel.org,
Linux PM mailing list, Srivatsa S. Bhat
From: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
The existing check for dev == NULL in __cpuidle_register_device() is rendered
useless because dev is dereferenced before the check itself. Moreover,
correctly speaking, it is the job of the callers of this function, i.e.,
cpuidle_register_device() & cpuidle_enable_device() (which also happen to be
exported functions) to ensure that __cpuidle_register_device() is called with
a non-NULL dev.
So add the necessary dev == NULL checks in the two callers and remove the
(useless) check from __cpuidle_register_device().
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
drivers/cpuidle/cpuidle.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index 87411ce..eae2f11 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -291,6 +291,9 @@ int cpuidle_enable_device(struct cpuidle_device *dev)
int ret, i;
struct cpuidle_driver *drv = cpuidle_get_driver();
+ if (!dev)
+ return -EINVAL;
+
if (dev->enabled)
return 0;
if (!drv || !cpuidle_curr_governor)
@@ -375,8 +378,6 @@ static int __cpuidle_register_device(struct cpuidle_device *dev)
struct device *cpu_dev = get_cpu_device((unsigned long)dev->cpu);
struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver();
- if (!dev)
- return -EINVAL;
if (!try_module_get(cpuidle_driver->owner))
return -EINVAL;
@@ -401,6 +402,9 @@ int cpuidle_register_device(struct cpuidle_device *dev)
{
int ret;
+ if (!dev)
+ return -EINVAL;
+
mutex_lock(&cpuidle_lock);
if ((ret = __cpuidle_register_device(dev))) {
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-04-30 7:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-30 7:00 [PATCH v2][RESEND] cpuidle: Add checks to avoid NULL pointer dereference Srivatsa S. Bhat
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.