dev-amdgpu: Fix address in POLL_REGMEM SDMA packet
The address for the POLL_REGMEM packet should not be shifted when the mode is 1 (memory). Relevant driver code below is not shifting the address. The shift is causing a page fault due to the incorrect address. This changeset removes the shift so the correct address is translated. https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/blob/ roc-4.3.x/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c#L903 Change-Id: I7a0ec3245ca14376670df24c5d3773958c08d751 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67877 Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com> Maintainer: Matt Sinclair <mattdsinclair@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -832,7 +832,7 @@ SDMAEngine::pollRegMem(SDMAQueue *q, sdmaPollRegMemHeader *header,
|
||||
auto cb = new DmaVirtCallback<uint32_t>(
|
||||
[ = ] (const uint32_t &dma_buffer) {
|
||||
pollRegMemRead(q, header, pkt, dma_buffer, 0); });
|
||||
dmaReadVirt(pkt->address >> 3, sizeof(uint32_t), cb,
|
||||
dmaReadVirt(pkt->address, sizeof(uint32_t), cb,
|
||||
(void *)&cb->dmaBuffer);
|
||||
} else {
|
||||
panic("SDMA poll mem operation not implemented.");
|
||||
|
||||
Reference in New Issue
Block a user