mirror of
https://git.missingno.dev/kolibrios-nvme-driver/
synced 2025-01-03 03:15:56 +01:00
fix: add polling for I/O queue deletion
This commit is contained in:
parent
998d51f9e8
commit
39ad8d2f3a
@ -144,6 +144,9 @@ endp
|
|||||||
; See page 105 of the NVMe 1.4 specification for reference
|
; See page 105 of the NVMe 1.4 specification for reference
|
||||||
proc delete_io_completion_queue stdcall, pci:dword, qid:word
|
proc delete_io_completion_queue stdcall, pci:dword, qid:word
|
||||||
|
|
||||||
|
push esi
|
||||||
|
mov esi, [pci]
|
||||||
|
mov dword [esi + pcidev.spinlock], 1
|
||||||
sub esp, sizeof.SQ_ENTRY
|
sub esp, sizeof.SQ_ENTRY
|
||||||
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
|
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
|
||||||
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_DEL_IO_COMPLETION_QUEUE
|
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_DEL_IO_COMPLETION_QUEUE
|
||||||
@ -152,6 +155,8 @@ proc delete_io_completion_queue stdcall, pci:dword, qid:word
|
|||||||
mov word [esp + SQ_ENTRY.cdw10], ax
|
mov word [esp + SQ_ENTRY.cdw10], ax
|
||||||
stdcall sqytdbl_write, [pci], ADMIN_QUEUE, esp
|
stdcall sqytdbl_write, [pci], ADMIN_QUEUE, esp
|
||||||
add esp, sizeof.SQ_ENTRY
|
add esp, sizeof.SQ_ENTRY
|
||||||
|
stdcall nvme_poll, esi
|
||||||
|
pop esi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
endp
|
endp
|
||||||
@ -180,6 +185,9 @@ endp
|
|||||||
; See page 105-106 of the NVMe 1.4 specification for reference
|
; See page 105-106 of the NVMe 1.4 specification for reference
|
||||||
proc delete_io_submission_queue stdcall, pci:dword, qid:word
|
proc delete_io_submission_queue stdcall, pci:dword, qid:word
|
||||||
|
|
||||||
|
push esi
|
||||||
|
mov esi, [pci]
|
||||||
|
mov dword [esi + pcidev.spinlock], 1
|
||||||
sub esp, sizeof.SQ_ENTRY
|
sub esp, sizeof.SQ_ENTRY
|
||||||
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
|
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
|
||||||
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_DEL_IO_SUBMISSION_QUEUE
|
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_DEL_IO_SUBMISSION_QUEUE
|
||||||
@ -188,6 +196,8 @@ proc delete_io_submission_queue stdcall, pci:dword, qid:word
|
|||||||
mov word [esp + SQ_ENTRY.cdw10], ax
|
mov word [esp + SQ_ENTRY.cdw10], ax
|
||||||
stdcall sqytdbl_write, [pci], ADMIN_QUEUE, esp
|
stdcall sqytdbl_write, [pci], ADMIN_QUEUE, esp
|
||||||
add esp, sizeof.SQ_ENTRY
|
add esp, sizeof.SQ_ENTRY
|
||||||
|
stdcall nvme_poll, esi
|
||||||
|
pop esi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
endp
|
endp
|
||||||
|
Loading…
Reference in New Issue
Block a user