1. 02 12月, 2015 1 次提交
  2. 25 11月, 2015 2 次提交
    • C
      nvme: add missing unmaps in nvme_queue_rq · bf508e91
      Christoph Hellwig 提交于
      When we fail various metadata related operations in nvme_queue_rq we
      need to unmap the data SGL.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NKeith Busch <keith.busch@intel.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      bf508e91
    • N
      NVMe: default to 4k device page size · c5c9f25b
      Nishanth Aravamudan 提交于
      We received a bug report recently when DDW (64-bit direct DMA on Power)
      is not enabled for NVMe devices. In that case, we fall back to 32-bit
      DMA via the IOMMU, which is always done via 4K TCEs (Translation Control
      Entries).
      
      The NVMe device driver, though, assumes that the DMA alignment for the
      PRP entries will match the device's page size, and that the DMA aligment
      matches the kernel's page aligment. On Power, the the IOMMU page size,
      as mentioned above, can be 4K, while the device can have a page size of
      8K, while the kernel has a page size of 64K. This eventually trips the
      BUG_ON in nvme_setup_prps(), as we have a 'dma_len' that is a multiple
      of 4K but not 8K (e.g., 0xF000).
      
      In this particular case of page sizes, we clearly want to use the
      IOMMU's page size in the driver. And generally, the NVMe driver in this
      function should be using the IOMMU's page size for the default device
      page size, rather than the kernel's page size. There is not currently an
      API to obtain the IOMMU's page size across all architectures and in the
      interest of a stop-gap fix to this functional issue, default the NVMe
      device page size to 4K, with the intent of adding such an API and
      implementation across all architectures in the next merge window.
      
      With the functionally equivalent v3 of this patch, our hardware test
      exerciser survives when using 32-bit DMA; without the patch, the kernel
      will BUG within a few minutes.
      
      Signed-off-by: Nishanth Aravamudan <nacc at linux.vnet.ibm.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      c5c9f25b
  3. 20 11月, 2015 2 次提交
  4. 12 11月, 2015 3 次提交
  5. 08 11月, 2015 1 次提交
  6. 07 11月, 2015 1 次提交
  7. 04 11月, 2015 1 次提交
  8. 29 10月, 2015 1 次提交
    • M
      nvme: LightNVM support · ca064085
      Matias Bjørling 提交于
      The first generation of Open-Channel SSDs is based on NVMe. The NVMe
      driver is extended with support for the LightNVM command set.
      
      Detection is made through PCI IDs. Current supported devices are the
      qemu nvme simulator and CNEX Labs Westlake SSD. The qemu nvme enables
      support through vendor specific bits in the namespace identification and
      the CNEX Labs Westlake SSD implements a LightNVM compatible firmware and
      is detected using the same method as qemu.
      
      After detection, vendor specific codes are used to identify the device
      and enumerate supported features.
      Reviewed-by: NKeith Busch <keith.busch@intel.com>
      Signed-off-by: NJavier González <jg@lightnvm.io>
      Signed-off-by: NMatias Bjørling <m@bjorling.me>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      ca064085
  9. 22 10月, 2015 8 次提交
  10. 15 10月, 2015 2 次提交
  11. 13 10月, 2015 1 次提交
    • A
      nvme: fix 32-bit build warning · 3d42e67f
      Arnd Bergmann 提交于
      Compiling the nvme driver on 32-bit warns about a cast from a __u64
      variable to a pointer:
      
      drivers/block/nvme-core.c: In function 'nvme_submit_io':
      drivers/block/nvme-core.c:1847:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
          (void __user *)io.addr, length, NULL, 0);
      
      The cast here is intentional and safe, so we can shut up the
      gcc warning by adding an intermediate cast to 'uintptr_t'.
      
      I had previously submitted a patch to fix this problem in the
      nvme driver, but it was accepted on the same day that two new
      warnings got added.
      
      For clarification, I also change the third instance of this cast
      to use uintptr_t instead of unsigned long now.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: d29ec824 ("nvme: submit internal commands through the block layer")
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      3d42e67f
  12. 10 10月, 2015 11 次提交
  13. 01 10月, 2015 1 次提交
  14. 24 9月, 2015 1 次提交
  15. 26 8月, 2015 1 次提交
  16. 20 8月, 2015 2 次提交
  17. 19 8月, 2015 1 次提交