mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
Merge remote-tracking branch 'kwolf/for-anthony' into staging
* kwolf/for-anthony: AHCI: Masking of IRQs actually masks them sheepdog: fix co_recv coroutine context AHCI: Fix port reset race rewrite QEMU_BUILD_BUG_ON qcow2: Keep unknown header extension when rewriting header qcow2: Update whole header at once vpc: Round up image size during fixed image creation vpc: Add support for Fixed Disk type iSCSI: add configuration variables for iSCSI qemu-io: add write -z option for bdrv_co_write_zeroes qed: add .bdrv_co_write_zeroes() support qed: replace is_write with flags field block: perform zero-detection during copy-on-read block: add .bdrv_co_write_zeroes() interface cutils: extract buffer_is_zero() from qemu-img.c
This commit is contained in:
commit
65b31cc207
21 changed files with 896 additions and 255 deletions
|
@ -146,6 +146,7 @@ static void ahci_check_irq(AHCIState *s)
|
|||
|
||||
DPRINTF(-1, "check irq %#x\n", s->control_regs.irqstatus);
|
||||
|
||||
s->control_regs.irqstatus = 0;
|
||||
for (i = 0; i < s->ports; i++) {
|
||||
AHCIPortRegs *pr = &s->dev[i].port_regs;
|
||||
if (pr->irq_stat & pr->irq_mask) {
|
||||
|
@ -216,6 +217,7 @@ static void ahci_port_write(AHCIState *s, int port, int offset, uint32_t val)
|
|||
break;
|
||||
case PORT_IRQ_STAT:
|
||||
pr->irq_stat &= ~val;
|
||||
ahci_check_irq(s);
|
||||
break;
|
||||
case PORT_IRQ_MASK:
|
||||
pr->irq_mask = val & 0xfdc000ff;
|
||||
|
@ -560,6 +562,11 @@ static void ahci_reset_port(AHCIState *s, int port)
|
|||
ncq_tfs->aiocb = NULL;
|
||||
}
|
||||
|
||||
/* Maybe we just finished the request thanks to bdrv_aio_cancel() */
|
||||
if (!ncq_tfs->used) {
|
||||
continue;
|
||||
}
|
||||
|
||||
qemu_sglist_destroy(&ncq_tfs->sglist);
|
||||
ncq_tfs->used = 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue