git: 9front

Download patch

ref: fe8781f6aa7c8bba8632cb0db38a0a08d522e2be
parent: ce7acb0e8432ea49e7efb1d4de2c0de5f0b71514
parent: 9f10de45eb0e8286637ce7efab6f762fd4044675
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Mar 30 19:39:03 EDT 2017

merge

--- a/sys/src/9/pc/pccpuf
+++ b/sys/src/9/pc/pccpuf
@@ -101,6 +101,7 @@
 	sdodin		pci sdscsi led
 	sdvirtio	pci sdscsi
 	sdmmc		pci pmmc
+	sdnvme		pci
 	sdloop
 
 	vga3dfx		+cur
--- a/sys/src/9/pc/pcf
+++ b/sys/src/9/pc/pcf
@@ -98,6 +98,7 @@
 	sdodin		pci sdscsi led
 	sdvirtio	pci sdscsi
 	sdmmc		pci pmmc
+	sdnvme		pci
 	sdloop
 
 	uarti8250
--- a/sys/src/9/pc/sdnvme.c
+++ b/sys/src/9/pc/sdnvme.c
@@ -165,7 +165,7 @@
 		if(cq->base == nil)
 			continue;
 		phaseshift = 16 - cq->shift;
-		for(;; cq->head++){
+		for(;;){
 			e = &cq->base[(cq->head & cq->mask)<<2];
 			if(((e[3] ^ (cq->head << phaseshift)) & 0x10000) == 0)
 				break;
@@ -183,11 +183,9 @@
 				*wp = nil;
 				wakeup(z);
 			}
+			ctlr->reg[DBell + ((cq-ctlr->cq)*2+1 << ctlr->dstrd)] = ++cq->head & cq->mask;
 		}
-		ctlr->reg[DBell + ((cq-ctlr->cq)*2+1 << ctlr->dstrd)] = cq->head & cq->mask;
 	}
-	if((ctlr->reg[CSts] & 3) != 1)
-		iprint("nvmeintr: fatal controller error\n");
 	ctlr->reg[IntMc] = ctlr->ints;
 	iunlock(&ctlr->intr);
 }
--- a/sys/src/9/pc64/pc64
+++ b/sys/src/9/pc64/pc64
@@ -96,6 +96,7 @@
 #	sdodin		pci sdscsi led
 	sdvirtio	pci sdscsi
 	sdmmc		pci pmmc
+	sdnvme		pci
 	sdloop
 
 	uarti8250
--