shithub: riscv

Download patch

ref: 330916bfa517734e93cf8799ecf3fe7dd1b53e69
parent: 0d3c3ba93506094d0360df9d10c4b787218e59dc
parent: 557cbe10adb61ffd3d29689b26c9f42fa2f850c9
author: cinap_lenrek <[email protected]>
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