Print this page
8628 nvme: use a semaphore to guard submission queue
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

@@ -107,10 +107,11 @@
         uint16_t nq_next_cmd;
         uint_t nq_active_cmds;
         int nq_phase;
 
         kmutex_t nq_mutex;
+        ksema_t nq_sema;
 };
 
 struct nvme {
         dev_info_t *n_dip;
         int n_progress;

@@ -184,15 +185,13 @@
         /* errors detected by driver */
         uint32_t n_dma_bind_err;
         uint32_t n_abort_failed;
         uint32_t n_cmd_timeout;
         uint32_t n_cmd_aborted;
-        uint32_t n_async_resubmit_failed;
         uint32_t n_wrong_logpage;
         uint32_t n_unknown_logpage;
         uint32_t n_too_many_cookies;
-        uint32_t n_admin_queue_full;
 
         /* errors detected by hardware */
         uint32_t n_data_xfr_err;
         uint32_t n_internal_err;
         uint32_t n_abort_rq_err;