Linux kernel source tree
Go to file
Srinivasan Shanmugam 4ec227c158 drm/amd/display: Fix 64-bit state pointer passed as 32-bit GPINT response buffer
edp_pr_get_state() incorrectly casts a uint64_t * to uint32_t * when
calling dc_wake_and_execute_gpint(). The GPINT path writes only 32 bits,
leaving the upper 32 bits of the u64 output uninitialized. Replace the
cast with a u32 temporary and copy the result into the u64 pointer.

Fixes the below:
drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_edp_panel_control.c
    1448 bool edp_pr_get_state(const struct dc_link *link, uint64_t *state)
                                                           ^^^^^^^^^^^^^^^
    1449 {

    ...

    1457         do {
    1458                 // Send gpint command and wait for ack
--> 1459                 if (!dc_wake_and_execute_gpint(dc->ctx, DMUB_GPINT__GET_REPLAY_STATE, panel_inst,
    1460                                                (uint32_t *)state, DM_DMUB_WAIT_TYPE_WAIT_WITH_REPLY)) {
                                                        ^^^^^^^^^^^^^^^^^

The dc_wake_and_execute_gpint() function doesn't take a u64, it takes a
u32.  It tries to initialize the state to zero at the start but that's
not going to work because of the type mismatch.  It suggests that
callers are allowed to pass uninitialized data to edp_pr_get_state() but
at present there are no callers so this is only a bug in the code but
doesn't affect runtime.

    1461                         // Return invalid state when GPINT times out
    1462                         *state = PR_STATE_INVALID;
    1463                 }

Fixes: 74ce00932e ("drm/amd/display: Refactor panel replay set dmub cmd flow")
Reported by: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Robin Chen <robin.chen@amd.com>
Cc: Jack Chang <jack.chang@amd.com>
Cc: Leon Huang <Leon.Huang1@amd.com>
Cc: Alex Hung <alex.hung@amd.com>
Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
Cc: Roman Li <roman.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2025-12-16 13:19:17 -05:00
arch Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
block
certs
crypto
Documentation Documentation/gpu: Add documentation about ring buffer 2025-12-08 13:56:32 -05:00
drivers drm/amd/display: Fix 64-bit state pointer passed as 32-bit GPINT response buffer 2025-12-16 13:19:17 -05:00
fs More NFS Client Bugfixes for Linux 6.18-rc 2025-11-14 13:44:23 -08:00
include amdkfd: Bump ABI to indicate presence of Trap handler support for expert scheduling 2025-12-08 14:23:21 -05:00
init rust: enable slice_flatten feature and provide it through an extension trait 2025-11-14 20:25:57 +09:00
io_uring io_uring/rsrc: don't use blk_rq_nr_phys_segments() as number of bvecs 2025-11-12 08:25:33 -07:00
ipc
kernel Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
lib lib/test_kho: check if KHO is enabled 2025-11-15 10:52:01 -08:00
LICENSES
mm 7 hotfixes. 5 are cc:stable, 4 are against mm/. 2025-11-16 13:31:14 -08:00
net bpf-fixes 2025-11-14 15:39:39 -08:00
rust Core Changes: 2025-11-28 06:49:44 +10:00
samples
scripts Rust fixes for v6.18 (2nd) 2025-11-14 15:36:15 -08:00
security
sound ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series 2025-11-14 14:19:47 +01:00
tools perf tools fixes for v6.18: 2nd batch 2025-11-16 13:45:03 -08:00
usr
virt KVM: guest_memfd: Remove bindings on memslot deletion when gmem is dying 2025-11-04 09:16:53 -08:00
.clang-format
.clippy.toml
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
.pylintrc
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Cross-subsystem Changes: 2025-12-05 10:16:25 +10:00
Makefile Linux 6.18-rc6 2025-11-16 14:25:38 -08:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.