OMAP: powerdomain: Fix overflow when doing powerdomain deps lookups.
authorPaul Walmsley <paul@pwsan.com>
Thu, 3 Sep 2009 17:13:53 +0000 (20:13 +0300)
committerpaul <paul@twilight.(none)>
Thu, 3 Sep 2009 17:13:53 +0000 (20:13 +0300)
commit5d113262ee9e074e0d36362d878892819bfdeb47
treed9cf88995c4a672ace8725518d4f1984350a9e26
parent36d568ec055cb3ac4507d38ebabba955cdbb443e
OMAP: powerdomain: Fix overflow when doing powerdomain deps lookups.

At the end of the list pd is a pointer to a NULL struct, so checking
if the address == NULL doesn't help here. In fact the original code
will just keep running past the struct to read who knows what in
memory.

This case manifests itself when from clkdms_setup() when enabling auto
idle for a clock domain and the clockdomain usecount is greater than
0. When _clkdm_add_autodeps() tries to add the a dependency that does
not exist in the powerdomain->wkdep_srcs array the for loop will run
past the wkdep_srcs array.

Currently in linux-omap you won't hit this because the not found case
is never executed, unless you start modifying powerdomains and their
wakeup/sleep deps.

Signed-off-by: Mike Chan <mike@android.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/powerdomain.c