pvr: fix valgrind warnings for 64-bit unaligned access

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Simon Perretta
2025-06-06 15:03:23 +01:00
committed by Marge Bot
parent d905d0fca7
commit f1b7374bbc
2 changed files with 12 additions and 8 deletions
+6 -4
View File
@@ -5681,16 +5681,18 @@ pvr_submit_info_stream_init(struct pvr_transfer_ctx *ctx,
/* Leave space for stream header. */
stream_ptr += pvr_cmd_length(KMD_STREAM_HDR);
*(uint64_t *)stream_ptr = regs->pds_bgnd0_base;
memcpy(stream_ptr, &regs->pds_bgnd0_base, sizeof(regs->pds_bgnd0_base));
stream_ptr += pvr_cmd_length(CR_PDS_BGRND0_BASE);
*(uint64_t *)stream_ptr = regs->pds_bgnd1_base;
memcpy(stream_ptr, &regs->pds_bgnd1_base, sizeof(regs->pds_bgnd1_base));
stream_ptr += pvr_cmd_length(CR_PDS_BGRND1_BASE);
*(uint64_t *)stream_ptr = regs->pds_bgnd3_sizeinfo;
memcpy(stream_ptr,
&regs->pds_bgnd3_sizeinfo,
sizeof(regs->pds_bgnd3_sizeinfo));
stream_ptr += pvr_cmd_length(CR_PDS_BGRND3_SIZEINFO);
*(uint64_t *)stream_ptr = regs->isp_mtile_base;
memcpy(stream_ptr, &regs->isp_mtile_base, sizeof(regs->isp_mtile_base));
stream_ptr += pvr_cmd_length(CR_ISP_MTILE_BASE);
STATIC_ASSERT(ARRAY_SIZE(regs->pbe_wordx_mrty) == 9U);
@@ -146,16 +146,18 @@ pvr_srv_transfer_cmd_stream_load(struct rogue_fwif_cmd_transfer *const cmd,
stream_ptr += pvr_cmd_length(KMD_STREAM_HDR);
regs->pds_bgnd0_base = *(uint64_t *)stream_ptr;
memcpy(&regs->pds_bgnd0_base, stream_ptr, sizeof(regs->pds_bgnd0_base));
stream_ptr += pvr_cmd_length(CR_PDS_BGRND0_BASE);
regs->pds_bgnd1_base = *(uint64_t *)stream_ptr;
memcpy(&regs->pds_bgnd1_base, stream_ptr, sizeof(regs->pds_bgnd1_base));
stream_ptr += pvr_cmd_length(CR_PDS_BGRND1_BASE);
regs->pds_bgnd3_sizeinfo = *(uint64_t *)stream_ptr;
memcpy(&regs->pds_bgnd3_sizeinfo,
stream_ptr,
sizeof(regs->pds_bgnd3_sizeinfo));
stream_ptr += pvr_cmd_length(CR_PDS_BGRND3_SIZEINFO);
regs->isp_mtile_base = *(uint64_t *)stream_ptr;
memcpy(&regs->isp_mtile_base, stream_ptr, sizeof(regs->isp_mtile_base));
stream_ptr += pvr_cmd_length(CR_ISP_MTILE_BASE);
STATIC_ASSERT(ARRAY_SIZE(regs->pbe_wordx_mrty) == 9U);