summaryrefslogtreecommitdiff
path: root/arch/arm/mach-exynos
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2013-08-05 16:10:52 +0200
committerChanho Park <chanho61.park@samsung.com>2014-11-18 11:44:44 +0900
commit27b13f782937cd3bdce8a506ded3f7585e466cf0 (patch)
tree859830f5a52b44d4313ce15463ac6f74ba4852d8 /arch/arm/mach-exynos
parent734a4aebefebfb72188d8b01654731f80a33c09f (diff)
downloadlinux-3.10-27b13f782937cd3bdce8a506ded3f7585e466cf0.tar.gz
linux-3.10-27b13f782937cd3bdce8a506ded3f7585e466cf0.tar.bz2
linux-3.10-27b13f782937cd3bdce8a506ded3f7585e466cf0.zip
ARM: EXYNOS: Avoid potential invalid genpd pointer dereference
dev_to_gend() may return an invalid pointer. Make exynos_remove_device_from_domain() function return and do nothing is such case. This prevents an invalid pointer dereference further in the function. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r--arch/arm/mach-exynos/pm_domains.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
index 9f1351de52f..435e396850c 100644
--- a/arch/arm/mach-exynos/pm_domains.c
+++ b/arch/arm/mach-exynos/pm_domains.c
@@ -107,6 +107,9 @@ static void exynos_remove_device_from_domain(struct device *dev)
struct generic_pm_domain *genpd = dev_to_genpd(dev);
int ret;
+ if (IS_ERR(genpd))
+ return;
+
dev_dbg(dev, "removing from power domain %s\n", genpd->name);
while (1) {