Message ID | 20190523171653.138678-3-sean@poorly.run (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/6] drm/msm/a6xx: Avoid freeing gmu resources multiple times | expand |
On Thu, May 23, 2019 at 01:16:42PM -0400, Sean Paul wrote: > From: Sean Paul <seanpaul@chromium.org> > > pdcptr and seqptr aren't necessarily valid, check them before trying to > unmap them. > > Changes in v2: > - None > > Cc: Jordan Crouse <jcrouse@codeaurora.org> > Signed-off-by: Sean Paul <seanpaul@chromium.org> It has always been sad to me that iounmap() has chosen to not check for NULL. Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org> > --- > drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > index 742c8ff9a61c..7465423e9b71 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > @@ -504,8 +504,10 @@ static void a6xx_gmu_rpmh_init(struct a6xx_gmu *gmu) > wmb(); > > err: > - devm_iounmap(gmu->dev, pdcptr); > - devm_iounmap(gmu->dev, seqptr); > + if (!IS_ERR_OR_NULL(pdcptr)) > + devm_iounmap(gmu->dev, pdcptr); > + if (!IS_ERR_OR_NULL(seqptr)) > + devm_iounmap(gmu->dev, seqptr); > } > > /* > -- > Sean Paul, Software Engineer, Google / Chromium OS >
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c index 742c8ff9a61c..7465423e9b71 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c @@ -504,8 +504,10 @@ static void a6xx_gmu_rpmh_init(struct a6xx_gmu *gmu) wmb(); err: - devm_iounmap(gmu->dev, pdcptr); - devm_iounmap(gmu->dev, seqptr); + if (!IS_ERR_OR_NULL(pdcptr)) + devm_iounmap(gmu->dev, pdcptr); + if (!IS_ERR_OR_NULL(seqptr)) + devm_iounmap(gmu->dev, seqptr); } /*