mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
media: imx-jpeg: Fix potential error pointer dereference in detach_pm()
The proble is on the first line:
if (jpeg->pd_dev[i] && !pm_runtime_suspended(jpeg->pd_dev[i]))
If jpeg->pd_dev[i] is an error pointer, then passing it to
pm_runtime_suspended() will lead to an Oops. The other conditions
check for both error pointers and NULL, but it would be more clear to
use the IS_ERR_OR_NULL() check for that.
Fixes: fd0af4cd35 ("media: imx-jpeg: Ensure power suppliers be suspended before detach them")
Cc: <stable@vger.kernel.org>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Ming Qian <ming.qian@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
committed by
Hans Verkuil
parent
27dcdb63aa
commit
1378ffec30
@@ -2677,11 +2677,12 @@ static void mxc_jpeg_detach_pm_domains(struct mxc_jpeg_dev *jpeg)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < jpeg->num_domains; i++) {
|
||||
if (jpeg->pd_dev[i] && !pm_runtime_suspended(jpeg->pd_dev[i]))
|
||||
if (!IS_ERR_OR_NULL(jpeg->pd_dev[i]) &&
|
||||
!pm_runtime_suspended(jpeg->pd_dev[i]))
|
||||
pm_runtime_force_suspend(jpeg->pd_dev[i]);
|
||||
if (jpeg->pd_link[i] && !IS_ERR(jpeg->pd_link[i]))
|
||||
if (!IS_ERR_OR_NULL(jpeg->pd_link[i]))
|
||||
device_link_del(jpeg->pd_link[i]);
|
||||
if (jpeg->pd_dev[i] && !IS_ERR(jpeg->pd_dev[i]))
|
||||
if (!IS_ERR_OR_NULL(jpeg->pd_dev[i]))
|
||||
dev_pm_domain_detach(jpeg->pd_dev[i], true);
|
||||
jpeg->pd_dev[i] = NULL;
|
||||
jpeg->pd_link[i] = NULL;
|
||||
|
||||
Reference in New Issue
Block a user