Print this page
9446 some NVMe controllers get upset about NS ID of 0 when checking "Error Recovery" feature

@@ -1864,18 +1864,27 @@
          */
         switch (feature) {
         case NVME_FEAT_ARBITRATION:
         case NVME_FEAT_POWER_MGMT:
         case NVME_FEAT_TEMPERATURE:
-        case NVME_FEAT_ERROR:
         case NVME_FEAT_NQUEUES:
         case NVME_FEAT_INTR_COAL:
         case NVME_FEAT_INTR_VECT:
         case NVME_FEAT_WRITE_ATOM:
         case NVME_FEAT_ASYNC_EVENT:
                 break;
 
+        case NVME_FEAT_ERROR:
+                /*
+                 * Some controllers (e.g. INTEL SSDPE2KX010T7) get upset if
+                 * namespace ID of 0 is specified.  As we don't currently report
+                 * the "Deallocated or Unwritten Logical Block Error Enable",
+                 * simply set the NS ID to 1.
+                 */
+                cmd->nc_sqe.sqe_nsid = 1;
+                break;
+
         case NVME_FEAT_WRITE_CACHE:
                 if (!nvme->n_write_cache_present)
                         goto fail;
                 break;