Revision 69c38b8f
b/hw/ide/core.c | ||
---|---|---|
430 | 430 |
s->error = ABRT_ERR; |
431 | 431 |
s->status = READY_STAT | ERR_STAT; |
432 | 432 |
ide_set_inactive(s); |
433 |
s->bus->dma->ops->add_status(s->bus->dma, BM_STATUS_INT); |
|
434 | 433 |
ide_set_irq(s->bus); |
435 | 434 |
} |
436 | 435 |
|
... | ... | |
500 | 499 |
n = s->nsector; |
501 | 500 |
s->io_buffer_index = 0; |
502 | 501 |
s->io_buffer_size = n * 512; |
503 |
if (s->bus->dma->ops->prepare_buf(s->bus->dma, s->is_read) == 0) |
|
502 |
if (s->bus->dma->ops->prepare_buf(s->bus->dma, s->is_read) == 0) { |
|
503 |
/* The PRDs were too short. Reset the Active bit, but don't raise an |
|
504 |
* interrupt. */ |
|
504 | 505 |
goto eot; |
506 |
} |
|
505 | 507 |
|
506 | 508 |
#ifdef DEBUG_AIO |
507 | 509 |
printf("ide_dma_cb: sector_num=%" PRId64 " n=%d, is_read=%d\n", |
... | ... | |
523 | 525 |
return; |
524 | 526 |
|
525 | 527 |
eot: |
526 |
s->bus->dma->ops->add_status(s->bus->dma, BM_STATUS_INT); |
|
527 | 528 |
ide_set_inactive(s); |
528 | 529 |
} |
529 | 530 |
|
Also available in: Unified diff