Message ID | 20210415152913.1363964-1-nathan@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/tegra: Fix shift overflow in tegra_shared_plane_atomic_update | expand |
On Thu, Apr 15, 2021 at 08:29:14AM -0700, Nathan Chancellor wrote: > Clang warns: > > drivers/gpu/drm/tegra/hub.c:513:11: warning: shift count >= width of > type [-Wshift-count-overflow] > base |= BIT(39); > ^~~~~~~ > > BIT is unsigned long, which is 32-bit on ARCH=arm, hence the overflow > warning. Switch to BIT_ULL, which is 64-bit and will not overflow. > > Fixes: 7b6f846785f4 ("drm/tegra: Support sector layout on Tegra194") > Link: https://github.com/ClangBuiltLinux/linux/issues/1351 > Signed-off-by: Nathan Chancellor <nathan@kernel.org> > --- > drivers/gpu/drm/tegra/hub.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) This code never runs on 32-bit platforms, so another option would be to not try and build this on 32-bit configurations either. But none of the rest of the code is built conditionally, so fixing this is preferable. Applied, thanks. Thierry
diff --git a/drivers/gpu/drm/tegra/hub.c b/drivers/gpu/drm/tegra/hub.c index 79bff8b48271..bfae8a02f55b 100644 --- a/drivers/gpu/drm/tegra/hub.c +++ b/drivers/gpu/drm/tegra/hub.c @@ -510,7 +510,7 @@ static void tegra_shared_plane_atomic_update(struct drm_plane *plane, * dGPU sector layout. */ if (tegra_plane_state->tiling.sector_layout == TEGRA_BO_SECTOR_LAYOUT_GPU) - base |= BIT(39); + base |= BIT_ULL(39); #endif tegra_plane_writel(p, tegra_plane_state->format, DC_WIN_COLOR_DEPTH);
Clang warns: drivers/gpu/drm/tegra/hub.c:513:11: warning: shift count >= width of type [-Wshift-count-overflow] base |= BIT(39); ^~~~~~~ BIT is unsigned long, which is 32-bit on ARCH=arm, hence the overflow warning. Switch to BIT_ULL, which is 64-bit and will not overflow. Fixes: 7b6f846785f4 ("drm/tegra: Support sector layout on Tegra194") Link: https://github.com/ClangBuiltLinux/linux/issues/1351 Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- drivers/gpu/drm/tegra/hub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: 0265531f0897f890da3f9c2958707af099c7d974