Print this page
8629 nvme: rework command abortion
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/nvme/nvme_var.h
          +++ new/usr/src/uts/common/io/nvme/nvme_var.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * Copyright 2016 The MathWorks, Inc. All rights reserved.
  15   15   */
  16   16  
  17   17  #ifndef _NVME_VAR_H
  18   18  #define _NVME_VAR_H
  19   19  
  20   20  #include <sys/ddi.h>
  21   21  #include <sys/sunddi.h>
  22   22  #include <sys/blkdev.h>
  23   23  #include <sys/taskq_impl.h>
       24 +#include <sys/list.h>
  24   25  
  25   26  /*
  26   27   * NVMe driver state
  27   28   */
  28   29  
  29   30  #ifdef __cplusplus
  30   31  extern "C" {
  31   32  #endif
  32   33  
  33   34  #define NVME_FMA_INIT                   0x1
↓ open down ↓ 29 lines elided ↑ open up ↑
  63   64          ddi_dma_handle_t nd_dmah;
  64   65          ddi_acc_handle_t nd_acch;
  65   66          ddi_dma_cookie_t nd_cookie;
  66   67          uint_t nd_ncookie;
  67   68          caddr_t nd_memp;
  68   69          size_t nd_len;
  69   70          boolean_t nd_cached;
  70   71  };
  71   72  
  72   73  struct nvme_cmd {
       74 +        struct list_node nc_list;
       75 +
  73   76          nvme_sqe_t nc_sqe;
  74   77          nvme_cqe_t nc_cqe;
  75   78  
  76   79          void (*nc_callback)(void *);
  77   80          bd_xfer_t *nc_xfer;
  78   81          boolean_t nc_completed;
  79   82          boolean_t nc_dontpanic;
  80   83          uint16_t nc_sqid;
  81   84  
  82   85          nvme_dma_t *nc_dma;
↓ open down ↓ 69 lines elided ↑ open up ↑
 152  155          int n_nssr_supported;
 153  156          int n_doorbell_stride;
 154  157          int n_timeout;
 155  158          int n_arbitration_mechanisms;
 156  159          int n_cont_queues_reqd;
 157  160          int n_max_queue_entries;
 158  161          int n_pageshift;
 159  162          int n_pagesize;
 160  163  
 161  164          int n_namespace_count;
 162      -        int n_ioq_count;
      165 +        uint16_t n_ioq_count;
 163  166  
 164  167          nvme_identify_ctrl_t *n_idctl;
 165  168  
 166  169          nvme_qpair_t *n_adminq;
 167  170          nvme_qpair_t **n_ioq;
 168  171  
 169  172          nvme_namespace_t *n_ns;
 170  173  
 171  174          ddi_dma_attr_t n_queue_dma_attr;
 172  175          ddi_dma_attr_t n_prp_dma_attr;
↓ open down ↓ 89 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX