a6xx_gmu_rpmh_arc_index() returns a signed error value. Check the result
before passing it to FIELD_MODIFY(), which rejects a compiler-propagated
negative value as too large for the field.
Fixes: 020b8eaa1db8 ("drm/msm/a6xx: Add BX rail support to GMU dependency
votes")
Cc: [email protected]
Reported-by: kernel test robot <[email protected]>
Closes:
https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Akhil P Oommen <[email protected]>
---
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 662f09bec9d5..9e02d6f939af 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -1867,6 +1867,9 @@ static int a6xx_gmu_rpmh_dep_votes_init(struct device
*dev, u32 *votes,
* back to the highest BX corner if none is high enough.
*/
bx = a6xx_gmu_rpmh_arc_index(dev, gbx, gbx_count, gx[index],
true);
+ if (bx < 0)
+ return bx;
+
FIELD_MODIFY(GMU_BX_MASK, &votes[i], bx);
}
--
2.55.0