ide: pass IDEBus to the restart_cb

Pass the containing IDEBus to the restart_cb instead
of the more specific BMDMAState child.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 1424708286-16483-6-git-send-email-jsnow@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Paolo Bonzini 2015-02-23 11:17:54 -05:00 committed by Kevin Wolf
parent 2745df813d
commit d34fceda8f
2 changed files with 6 additions and 6 deletions

View File

@ -2332,7 +2332,7 @@ static const IDEDMAOps ide_dma_nop_ops = {
void ide_register_restart_cb(IDEBus *bus)
{
qemu_add_vm_change_state_handler(bus->dma->ops->restart_cb, bus->dma);
qemu_add_vm_change_state_handler(bus->dma->ops->restart_cb, bus);
}
static IDEDMA ide_dma_nop = {

View File

@ -208,8 +208,8 @@ static void ide_restart_dma(IDEState *s, enum ide_dma_cmd dma_cmd)
/* TODO This should be common IDE code */
static void bmdma_restart_bh(void *opaque)
{
BMDMAState *bm = opaque;
IDEBus *bus = bm->bus;
IDEBus *bus = opaque;
BMDMAState *bm = DO_UPCAST(BMDMAState, dma, bus->dma);
IDEState *s;
bool is_read;
int error_status;
@ -260,14 +260,14 @@ static void bmdma_restart_bh(void *opaque)
static void bmdma_restart_cb(void *opaque, int running, RunState state)
{
IDEDMA *dma = opaque;
BMDMAState *bm = DO_UPCAST(BMDMAState, dma, dma);
IDEBus *bus = opaque;
BMDMAState *bm = DO_UPCAST(BMDMAState, dma, bus->dma);
if (!running)
return;
if (!bm->bh) {
bm->bh = qemu_bh_new(bmdma_restart_bh, &bm->dma);
bm->bh = qemu_bh_new(bmdma_restart_bh, bus);
qemu_bh_schedule(bm->bh);
}
}