Skip to content

Commit cfa7b76

Browse files
jnikulatursulin
authored andcommitted
drm/i915/power: fix size for for_each_set_bit() in abox iteration
for_each_set_bit() expects size to be in bits, not bytes. The abox mask iteration uses bytes, but it works by coincidence, because the local variable holding the mask is unsigned long, and the mask only ever has bit 2 as the highest bit. Using a smaller type could lead to subtle and very hard to track bugs. Fixes: 62afef2 ("drm/i915/rkl: RKL uses ABOX0 for pixel transfers") Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Cc: stable@vger.kernel.org # v5.9+ Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://lore.kernel.org/r/20250905104149.1144751-1-jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com> (cherry picked from commit 7ea3baa) Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
1 parent 76eeb9b commit cfa7b76

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/gpu/drm/i915/display/intel_display_power.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ static void icl_mbus_init(struct intel_display *display)
11721172
if (DISPLAY_VER(display) == 12)
11731173
abox_regs |= BIT(0);
11741174

1175-
for_each_set_bit(i, &abox_regs, sizeof(abox_regs))
1175+
for_each_set_bit(i, &abox_regs, BITS_PER_TYPE(abox_regs))
11761176
intel_de_rmw(display, MBUS_ABOX_CTL(i), mask, val);
11771177
}
11781178

@@ -1629,11 +1629,11 @@ static void tgl_bw_buddy_init(struct intel_display *display)
16291629
if (table[config].page_mask == 0) {
16301630
drm_dbg_kms(display->drm,
16311631
"Unknown memory configuration; disabling address buddy logic.\n");
1632-
for_each_set_bit(i, &abox_mask, sizeof(abox_mask))
1632+
for_each_set_bit(i, &abox_mask, BITS_PER_TYPE(abox_mask))
16331633
intel_de_write(display, BW_BUDDY_CTL(i),
16341634
BW_BUDDY_DISABLE);
16351635
} else {
1636-
for_each_set_bit(i, &abox_mask, sizeof(abox_mask)) {
1636+
for_each_set_bit(i, &abox_mask, BITS_PER_TYPE(abox_mask)) {
16371637
intel_de_write(display, BW_BUDDY_PAGE_MASK(i),
16381638
table[config].page_mask);
16391639

0 commit comments

Comments
 (0)