ahci: SATA FIS is 20 bytes, not 0x20
As in the SATA and AHCI specifications, a FIS is 5 Dwords of 4 bytes each, which comes to 20 bytes (decimal), not 0x20. Signed-off-by: Daniel Verkamp <daniel@drv.nu> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
136be99e6e
commit
4bb9c939a5
|
@ -462,7 +462,7 @@ static void ahci_check_cmd_bh(void *opaque)
|
||||||
|
|
||||||
static void ahci_init_d2h(AHCIDevice *ad)
|
static void ahci_init_d2h(AHCIDevice *ad)
|
||||||
{
|
{
|
||||||
uint8_t init_fis[0x20];
|
uint8_t init_fis[20];
|
||||||
IDEState *ide_state = &ad->port.ifs[0];
|
IDEState *ide_state = &ad->port.ifs[0];
|
||||||
|
|
||||||
memset(init_fis, 0, sizeof(init_fis));
|
memset(init_fis, 0, sizeof(init_fis));
|
||||||
|
@ -619,7 +619,7 @@ static void ahci_write_fis_d2h(AHCIDevice *ad, uint8_t *cmd_fis)
|
||||||
d2h_fis[11] = cmd_fis[11];
|
d2h_fis[11] = cmd_fis[11];
|
||||||
d2h_fis[12] = cmd_fis[12];
|
d2h_fis[12] = cmd_fis[12];
|
||||||
d2h_fis[13] = cmd_fis[13];
|
d2h_fis[13] = cmd_fis[13];
|
||||||
for (i = 14; i < 0x20; i++) {
|
for (i = 14; i < 20; i++) {
|
||||||
d2h_fis[i] = 0;
|
d2h_fis[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue