mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
macio: switch pmac_dma_write() over to new offset/len implementation
In particular, this fixes a bug whereby chains of overlapping head/tail chains would incorrectly write over each other's remainder cache. This is the access pattern used by OS X/Darwin and fixes an issue with a corrupt Darwin installation in my local tests. While we are here, rename the DBDMA_io struct property remainder to head_remainder for clarification. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: John Snow <jsnow@redhat.com> Message-id: 1433455177-21243-3-git-send-email-mark.cave-ayland@ilande.co.uk Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
0389b8f8c7
commit
ac58fe7b2c
2 changed files with 58 additions and 67 deletions
|
@ -40,7 +40,8 @@ struct DBDMA_io {
|
|||
/* DMA is in progress, don't start another one */
|
||||
bool processing;
|
||||
/* unaligned last sector of a request */
|
||||
uint8_t remainder[0x200];
|
||||
uint8_t head_remainder[0x200];
|
||||
uint8_t tail_remainder[0x200];
|
||||
int remainder_len;
|
||||
QEMUIOVector iov;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue