Print this page
8631 only 16 NVMe controllers usable per system due to 18bit minor number limit
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/nvme/nvme.c
          +++ new/usr/src/uts/common/io/nvme/nvme.c
↓ open down ↓ 312 lines elided ↑ open up ↑
 313  313  
 314  314  static int nvme_prp_dma_constructor(void *, void *, int);
 315  315  static void nvme_prp_dma_destructor(void *, void *);
 316  316  
 317  317  static void nvme_prepare_devid(nvme_t *, uint32_t);
 318  318  
 319  319  static int nvme_open(dev_t *, int, int, cred_t *);
 320  320  static int nvme_close(dev_t, int, int, cred_t *);
 321  321  static int nvme_ioctl(dev_t, int, intptr_t, int, cred_t *, int *);
 322  322  
 323      -#define NVME_MINOR_INST_SHIFT   14
      323 +#define NVME_MINOR_INST_SHIFT   9
 324  324  #define NVME_MINOR(inst, nsid)  (((inst) << NVME_MINOR_INST_SHIFT) | (nsid))
 325  325  #define NVME_MINOR_INST(minor)  ((minor) >> NVME_MINOR_INST_SHIFT)
 326  326  #define NVME_MINOR_NSID(minor)  ((minor) & ((1 << NVME_MINOR_INST_SHIFT) - 1))
 327  327  #define NVME_MINOR_MAX          (NVME_MINOR(1, 0) - 2)
 328  328  
 329  329  static void *nvme_state;
 330  330  static kmem_cache_t *nvme_cmd_cache;
 331  331  
 332  332  /*
 333  333   * DMA attributes for queue DMA memory
↓ open down ↓ 3569 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX