mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 14:24:02 +08:00
megasas: fix megasas_get_sata_addr
There are two bugs here. First, the 16-bit id loses the high 8 bits when shifted left by 24. Second, the address must be combined with an "or" or we just get zero. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
633dccb458
commit
8ef2eb8d2c
@ -431,7 +431,7 @@ static uint64_t megasas_fw_time(void)
|
|||||||
static uint64_t megasas_get_sata_addr(uint16_t id)
|
static uint64_t megasas_get_sata_addr(uint16_t id)
|
||||||
{
|
{
|
||||||
uint64_t addr = (0x1221ULL << 48);
|
uint64_t addr = (0x1221ULL << 48);
|
||||||
return addr & (id << 24);
|
return addr | ((uint64_t)id << 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user