Commit 4d29b50a authored by Jan Kiszka's avatar Jan Kiszka Committed by Kevin Wolf
Browse files

ahci: Fix crashes on duplicate BH registration



If ahci_dma_set_inactive is called a while there is still a pending BH
from a previous run, we will crash on the second run of
ahci_check_cmd_bh as it overwrites AHCIDevice::check_bh. Avoid this
broken and redundant duplicate registration.

Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 3bfe4dbf
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1066,9 +1066,11 @@ static int ahci_dma_set_inactive(IDEDMA *dma)

    ad->dma_cb = NULL;

    if (!ad->check_bh) {
        /* maybe we still have something to process, check later */
        ad->check_bh = qemu_bh_new(ahci_check_cmd_bh, ad);
        qemu_bh_schedule(ad->check_bh);
    }

    return 0;
}