Print this page
9446 some NVMe controllers get upset about NS ID of 0 when checking "Error Recovery" feature
*** 1864,1881 ****
*/
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_WRITE_CACHE:
if (!nvme->n_write_cache_present)
goto fail;
break;
--- 1864,1890 ----
*/
switch (feature) {
case NVME_FEAT_ARBITRATION:
case NVME_FEAT_POWER_MGMT:
case NVME_FEAT_TEMPERATURE:
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;