CVE-2024-26721

drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address

published April 3, 2024

CVSS
—
EPSS
0%
Percentile
8.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address

Commit bd077259d0a9 ("drm/i915/vdsc: Add function to read any PPS

register") defines a new macro to calculate the DSC PPS register

addresses with PPS number as an input. This macro correctly calculates

the addresses till PPS 11 since the addresses increment by 4. So in that

case the following macro works correctly to give correct register

address:

_MMIO(_DSCA_PPS_0 + (pps) * 4)

However after PPS 11, the register address for PPS 12 increments by 12

because of RC Buffer memory allocation in between. Because of this

discontinuity in the address space, the macro calculates wrong addresses

for PPS 12 - 16 resulting into incorrect DSC PPS parameter value

read/writes causing DSC corruption.

This fixes it by correcting this macro to add the offset of 12 for PPS

>=12.

v3: Add correct paranthesis for pps argument (Jani Nikula)

(cherry picked from commit 6074be620c31dc2ae11af96a1a5ea95580976fb5)

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00196 · 8.8th percentile
Published
2024-04-03T14:55Z
EPSS history
Timeline
  • 03 APR 14:55Z
    drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address
    cvelistv5