X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/0cf90cca0c924622f3fee8d2a3fafa8238363dc6..59ecf21e36b2332f6adf2a568ef555283d8c119a:/lunaix-os/hal/ahci/io_event.c diff --git a/lunaix-os/hal/ahci/io_event.c b/lunaix-os/hal/ahci/io_event.c index c1bd6a5..c843d29 100644 --- a/lunaix-os/hal/ahci/io_event.c +++ b/lunaix-os/hal/ahci/io_event.c @@ -6,16 +6,16 @@ LOG_MODULE("io_evt") -extern struct llist_header ahcis; - void -__ahci_hba_isr(const isr_param* param) +ahci_hba_isr(const isr_param* param) { struct ahci_hba* hba; struct ahci_driver *pos, *n; - llist_for_each(pos, n, &ahcis, ahci_drvs) + struct llist_header* ahcis = (struct llist_header*)isrm_get_payload(param); + + llist_for_each(pos, n, ahcis, ahci_drvs) { - if (pos->id == param->execp->vector) { + if (pos->id == (int)param->execp->vector) { hba = &pos->hba; goto proceed; } @@ -65,7 +65,7 @@ proceed: blkio_schedule(ioreq->io_ctx); blkio_complete(ioreq); - vfree(cmdstate->cmd_table); + vfree_dma(cmdstate->cmd_table); done: hba_clear_reg(port->regs[HBA_RPxIS]);