From 30ea7ad58affeea1a0df11cb423eee10161fa9f5 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 29 Aug 2017 09:52:53 +0200 Subject: [PATCH] sdnvme: pass 0 instead of 0xffffffff as NSID for identify controller and create completion/submission queue commands (thanks Ori_B) Samsung SSD 960 EVO fails with invalid namespace error otherwise... --- sys/src/9/pc/sdnvme.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/src/9/pc/sdnvme.c b/sys/src/9/pc/sdnvme.c index 537578d5d..c64be543b 100644 --- a/sys/src/9/pc/sdnvme.c +++ b/sys/src/9/pc/sdnvme.c @@ -394,7 +394,7 @@ setupqueues(Ctlr *ctlr) /* CQID1: shared completion queue */ cq = &ctlr->cq[1]; cqalloc(ctlr, cq, lgsize); - e = qcmd(&ws, ctlr, 1, 0x05, ~0, nil, cq->base, 1<base, 1<cq) | cq->mask<<16; e[11] = 3; /* IEN | PC */ checkstatus(wcmd(&ws), "create completion queue"); @@ -403,7 +403,7 @@ setupqueues(Ctlr *ctlr) for(i=1; i<=conf.nmach; i++){ sq = &ctlr->sq[i]; sqalloc(ctlr, sq, 12); - e = qcmd(&ws, ctlr, 1, 0x01, ~0, nil, sq->base, 0x1000); + e = qcmd(&ws, ctlr, 1, 0x01, 0, nil, sq->base, 0x1000); e[10] = i | sq->mask<<16; e[11] = (cq - ctlr->cq)<<16 | 1; /* CQID<<16 | PC */ checkstatus(wcmd(&ws), "create submission queue"); @@ -428,7 +428,7 @@ identify(Ctlr *ctlr) if((ctlr->nsid = mallocalign(0x1000, ctlr->mps, 0, 0)) == nil) error(Enomem); - e = qcmd(&ws, ctlr, 1, 0x06, ~0, nil, ctlr->ident, 0x1000); + e = qcmd(&ws, ctlr, 1, 0x06, 0, nil, ctlr->ident, 0x1000); e[10] = 1; // identify controller checkstatus(wcmd(&ws), "identify controller");