mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
hw/ide/ahci.c: Fix shift left into sign bit
Avoid undefined behaviour from shifting left into the sign bit: hw/ide/ahci.c:551:36: runtime error: left shift of 255 by 24 places cannot be represented in type 'int' (Unfortunately C's promotion rules mean that in the expression "some_uint8_t_variable << 24" the LHS gets promoted to signed int before shifting.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
c737c7a608
commit
40fe17bea4
1 changed files with 1 additions and 1 deletions
|
@ -548,7 +548,7 @@ static void ahci_init_d2h(AHCIDevice *ad)
|
|||
ad->init_d2h_sent = true;
|
||||
/* We're emulating receiving the first Reg H2D Fis from the device;
|
||||
* Update the SIG register, but otherwise proceed as normal. */
|
||||
pr->sig = (ide_state->hcyl << 24) |
|
||||
pr->sig = ((uint32_t)ide_state->hcyl << 24) |
|
||||
(ide_state->lcyl << 16) |
|
||||
(ide_state->sector << 8) |
|
||||
(ide_state->nsector & 0xFF);
|
||||
|
|
Loading…
Reference in a new issue