diff --git a/drivers/nvme/nvme.asm b/drivers/nvme/nvme.asm
index 563774e..7de2678 100644
--- a/drivers/nvme/nvme.asm
+++ b/drivers/nvme/nvme.asm
@@ -1032,9 +1032,8 @@ proc get_new_cid stdcall, pci:dword, y:dword
 	mov 	eax, [pci]
 	mov 	eax, dword [eax + pcidev.queue_entries]
 	mov 	ecx, [y]
-	shl 	ecx, SIZEOF_NVM_QUEUE_ENTRY
+	shl 	ecx, LOG2 sizeof.NVM_QUEUE_ENTRY
 	movzx 	eax, word [eax + ecx + NVM_QUEUE_ENTRY.head]
-	;DEBUGF  DBG_INFO, "get_new_cid: %u\n", eax
 	ret
 
 endp
@@ -1129,7 +1128,7 @@ proc cqyhdbl_write stdcall, pci:dword, y:dword, cqh:dword
 	imul 	dx, ax
 	add 	dx, 0x1000
 	mov 	ecx, [y]
-	shl 	ecx, SIZEOF_NVM_QUEUE_ENTRY
+	shl 	ecx, LOG2 sizeof.NVM_QUEUE_ENTRY
 	mov 	edi, dword [esi + pcidev.queue_entries]
 	lea 	edi, dword [edi + ecx]
 	mov 	eax, [cqh]
@@ -1164,7 +1163,7 @@ proc sqytdbl_write stdcall, pci:dword, y:word, cmd:dword
 	mov 	edi, [pci]
 	mov 	edi, dword [edi + pcidev.queue_entries]
 	movzx 	ebx, [y]
-	shl 	ebx, SIZEOF_NVM_QUEUE_ENTRY
+	shl 	ebx, LOG2 sizeof.NVM_QUEUE_ENTRY
 	lea 	edi, [edi + ebx]
 	;mov 	eax, dword [edi + NVM_QUEUE_ENTRY.cmd_ptr]
 	mov 	edx, dword [edi + NVM_QUEUE_ENTRY.sq_ptr]
@@ -1172,9 +1171,9 @@ proc sqytdbl_write stdcall, pci:dword, y:word, cmd:dword
 	mov 	ecx, dword [esi + SQ_ENTRY.cdw0]
 	shr 	ecx, 16 ; Get CID
 	mov 	ebx, ecx
-	shl 	ebx, SIZEOF_NVM_QUEUE_ENTRY
+	shl 	ebx, LOG2 sizeof.NVM_QUEUE_ENTRY
 	add 	ebx, eax
-	shl 	ecx, SIZEOF_SQ_ENTRY
+	shl 	ecx, LOG2 sizeof.SQ_ENTRY
 	lea 	edx, [edx + ecx]
 	stdcall memcpyd, edx, esi, sizeof.SQ_ENTRY / 4
 	;mov 	ecx, dword [ebx + NVMQCMD.mutex_ptr]
@@ -1245,7 +1244,7 @@ proc consume_cq_entries stdcall, pci:dword, queue:dword
 	push 	esi edi
 	mov 	esi, [pci]
 	mov 	ecx, [queue]
-	shl 	ecx, SIZEOF_NVM_QUEUE_ENTRY
+	shl 	ecx, LOG2 sizeof.NVM_QUEUE_ENTRY
 	mov 	esi, dword [esi + pcidev.queue_entries]
 	lea 	esi, [esi + ecx]
 	movzx 	ecx, word [esi + NVM_QUEUE_ENTRY.head]
diff --git a/drivers/nvme/nvme.inc b/drivers/nvme/nvme.inc
index 3b312b3..df5d3ee 100644
--- a/drivers/nvme/nvme.inc
+++ b/drivers/nvme/nvme.inc
@@ -8,6 +8,8 @@
 ;;                                                                 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+define LOG2 bsr
+
 ; NVMe Controller Versions
 VS100 = 0x00010000 ; (v1.0.0)
 VS110 = 0x00010100 ; (v1.1.0)
@@ -27,10 +29,6 @@ SUPPORTED_LBADS = 9           ; KolibriOS only supports LBADS of 512, later on w
 SQ_ALLOC_SIZE = 0x1000
 CQ_ALLOC_SIZE = 0x1000
 QUEUE_ALLOC_SIZE = SQ_ALLOC_SIZE + CQ_ALLOC_SIZE
-SIZEOF_SQ_ENTRY = 6 ; log2(sizeof.SQ_ENTRY)
-SIZEOF_CQ_ENTRY = 4 ; log2(sizeof.CQ_ENTRY)
-SIZEOF_NVM_QUEUE_ENTRY = 4 ; log2(sizeof.NVM_QUEUE_ENTRY)
-SIZEOF_NVMQCMD = 4 ; log2(sizeof.NVMQCMD)
 
 MSIXCAP_CID = 0x11
 MSIXCAP_MXE = 1 shl 15 ; MSI-X Enable bit
@@ -146,8 +144,8 @@ CC_CRIME = 1 shl 24
 CC_SHN_NORMAL_SHUTDOWN = 1 shl 14
 CC_SHN_ABRUPT_SHUTDOWN = 1 shl 15
 
-CC_DEFAULT_IOSQES = SIZEOF_SQ_ENTRY shl 16
-CC_DEFAULT_IOCQES = SIZEOF_CQ_ENTRY shl 20
+CC_DEFAULT_IOSQES = LOG2 sizeof.SQ_ENTRY shl 16
+CC_DEFAULT_IOCQES = LOG2 sizeof.CQ_ENTRY shl 20
 
 ; Completion Queue Entry Status Field Values
 CQ_PHASE_TAG = 1 shl 0
@@ -577,15 +575,5 @@ assert sizeof.IDENTC = 4096
 assert sizeof.IDENTN = 4096
 assert sizeof.NSGRANLS = 288
 assert sizeof.NVMQCMD = 16
-assert SIZEOF_SQ_ENTRY = 6
-assert SIZEOF_CQ_ENTRY = 4
-assert SIZEOF_SQ_ENTRY = CC_DEFAULT_IOSQES shr 16
-assert SIZEOF_CQ_ENTRY = CC_DEFAULT_IOCQES shr 20
 
-; NOTE: DO NOT CHANGE THIS ASSERTION!
-; If you do decide to change it, you'll have
-; to modify the source code manually since it
-; uses bit shifts to multiply by the struct size
-assert sizeof.NVM_QUEUE_ENTRY = 16
-assert SIZEOF_NVM_QUEUE_ENTRY = 4
 ; vim: syntax=fasm