1. 23 12月, 2015 3 次提交
  2. 10 12月, 2015 1 次提交
  3. 09 12月, 2015 1 次提交
    • A
      nvme: fix another 32-bit build warning · d1ea7be5
      Arnd Bergmann 提交于
      The nvme_user_cmd function was recently moved around from one file
      to another, which made a warning reappear that I had fixed before
      at some point:
      
      drivers/nvme/host/core.c: In function 'nvme_user_cmd':
      drivers/nvme/host/core.c:424:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
      
      This applies the same workaround that we have elsewhere in the
      driver with an extra type cast to uintptr_t.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 1673f1f0 ("nvme: move block_device_operations and ns/ctrl freeing to common code")
      Link: https://lkml.org/lkml/2015/10/9/611Signed-off-by: NJens Axboe <axboe@fb.com>
      d1ea7be5
  4. 04 12月, 2015 2 次提交
    • C
      NVMe: fix build with CONFIG_NVM enabled · ac02ddde
      Christoph Hellwig 提交于
      Looks like I didn't test with CONFIG_NVM enabled, and neither did
      the build bot.
      
      Most of this is really weird crazy shit in the lighnvm support, though.
      
      Struct nvme_ns is a structure for the NVM I/O command set, and it has
      no business poking into it.  Second this commit:
      
      commit 47b3115a
      Author: Wenwei Tao <ww.tao0320@gmail.com>
      Date:   Fri Nov 20 13:47:55 2015 +0100
      
          nvme: lightnvm: use admin queues for admin cmds
      
      Does even more crazy stuff.  If a function gets a request_queue parameter
      passed it'd better use that and not look for another one.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      ac02ddde
    • K
      blk-integrity: empty implementation when disabled · 06c1e390
      Keith Busch 提交于
      This patch moves the blk_integrity_payload definition outside the
      CONFIG_BLK_DEV_INTERITY dependency and provides empty function
      implementations when the kernel configuration disables integrity
      extensions. This simplifies drivers that make use of these to map user
      data so they don't need to repeat the same configuration checks.
      Signed-off-by: NKeith Busch <keith.busch@intel.com>
      
      Updated by Jens to pass an error pointer return from
      bio_integrity_alloc(), otherwise if CONFIG_BLK_DEV_INTEGRITY isn't
      set, we return a weird ENOMEM from __nvme_submit_user_cmd()
      if a meta buffer is set.
      Signed-off-by: NJens Axboe <axboe@fb.com>
      06c1e390
  5. 02 12月, 2015 23 次提交
  6. 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
  7. 20 11月, 2015 3 次提交
  8. 17 11月, 2015 5 次提交