media: venus: Fix OPP table error handling
authorSasha Levin <sashal@kernel.org>
Tue, 5 Aug 2025 12:58:20 +0000 (08:58 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 6 Aug 2025 01:57:14 +0000 (04:57 +0300)
commit7881cd6886a89eda848192d3f5759ce08672e084
tree3b767e95e64923f5ddb9d7100a36bf1852b2fae5
parentadf12a394c8eb4b857b8f70cc6594a9ab25e3fc6
media: venus: Fix OPP table error handling

The venus driver fails to check if dev_pm_opp_find_freq_{ceil,floor}()
returns an error pointer before calling dev_pm_opp_put(). This causes
a crash when OPP tables are not present in device tree.

Unable to handle kernel access to user memory outside uaccess routines
at virtual address 000000000000002e
...
pc : dev_pm_opp_put+0x1c/0x4c
lr : core_clks_enable+0x4c/0x16c [venus_core]

Add IS_ERR() checks before calling dev_pm_opp_put() to avoid
dereferencing error pointers.

Fixes: b179234b5e59 ("media: venus: pm_helpers: use opp-table for the frequency")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/media/platform/qcom/venus/pm_helpers.c