Skip to content
Snippets Groups Projects
Commit b9062dea authored by Mark Cave-Ayland's avatar Mark Cave-Ayland
Browse files

cuda: fix reset-all and power-off words


There is a long-standing bug in the CUDA implementation of the reset-all and
power-off words whereby an extra byte is written after the CUDA_RESET_SYSTEM
and CUDA_POWERDOWN commands.

This extra byte used to be ignored in QEMU until commits 017da0b568 ("cuda:
port POWERDOWN command to new framework") and 54e894442e ("cuda: port
RESET_SYSTEM command to new framework") added a check which rejects the
command if the command length is incorrect.

Fix the outgoing command length to remove the extra byte which allows the
reset-all and power-off words to work in QEMU once again.

Signed-off-by: default avatarMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: default avatarHervé Poussineau <hpoussin@reactos.org>
Fixes: qemu#624
parent d657b653
No related branches found
No related tags found
No related merge requests found
......@@ -177,7 +177,7 @@ static cuda_t *main_cuda;
static void
ppc32_reset_all(void)
{
uint8_t cmdbuf[2], obuf[64];
uint8_t cmdbuf[1], obuf[64];
cmdbuf[0] = CUDA_RESET_SYSTEM;
cuda_request(main_cuda, CUDA_PACKET, cmdbuf, sizeof(cmdbuf), obuf);
......@@ -186,7 +186,7 @@ ppc32_reset_all(void)
static void
ppc32_poweroff(void)
{
uint8_t cmdbuf[2], obuf[64];
uint8_t cmdbuf[1], obuf[64];
cmdbuf[0] = CUDA_POWERDOWN;
cuda_request(main_cuda, CUDA_PACKET, cmdbuf, sizeof(cmdbuf), obuf);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment