1. 11 8月, 2022 1 次提交
  2. 03 8月, 2022 5 次提交
  3. 25 7月, 2022 1 次提交
  4. 14 7月, 2022 1 次提交
  5. 07 7月, 2022 1 次提交
  6. 06 7月, 2022 1 次提交
  7. 30 6月, 2022 1 次提交
  8. 29 6月, 2022 1 次提交
    • P
      nvme-pci: add NVME_QUIRK_BOGUS_NID for ADATA XPG SX6000LNP (AKA SPECTRIX S40G) · 1629de0e
      Pablo Greco 提交于
      ADATA XPG SPECTRIX S40G drives report bogus eui64 values that appear to
      be the same across drives in one system. Quirk them out so they are
      not marked as "non globally unique" duplicates.
      
      Before:
      [    2.258919] nvme nvme1: pci function 0000:06:00.0
      [    2.264898] nvme nvme2: pci function 0000:05:00.0
      [    2.323235] nvme nvme1: failed to set APST feature (2)
      [    2.326153] nvme nvme2: failed to set APST feature (2)
      [    2.333935] nvme nvme1: allocated 64 MiB host memory buffer.
      [    2.336492] nvme nvme2: allocated 64 MiB host memory buffer.
      [    2.339611] nvme nvme1: 7/0/0 default/read/poll queues
      [    2.341805] nvme nvme2: 7/0/0 default/read/poll queues
      [    2.346114]  nvme1n1: p1
      [    2.347197] nvme nvme2: globally duplicate IDs for nsid 1
      After:
      [    2.427715] nvme nvme1: pci function 0000:06:00.0
      [    2.427771] nvme nvme2: pci function 0000:05:00.0
      [    2.488154] nvme nvme2: failed to set APST feature (2)
      [    2.489895] nvme nvme1: failed to set APST feature (2)
      [    2.498773] nvme nvme2: allocated 64 MiB host memory buffer.
      [    2.500587] nvme nvme1: allocated 64 MiB host memory buffer.
      [    2.504113] nvme nvme2: 7/0/0 default/read/poll queues
      [    2.507026] nvme nvme1: 7/0/0 default/read/poll queues
      [    2.509467] nvme nvme2: Ignoring bogus Namespace Identifiers
      [    2.512804] nvme nvme1: Ignoring bogus Namespace Identifiers
      [    2.513698]  nvme1n1: p1
      Signed-off-by: NPablo Greco <pgreco@centosproject.org>
      Reviewed-by: NKeith Busch <kbusch@kernel.org>
      Reviewed-by: NChaitanya Kulkarni <kch@nvidia.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      1629de0e
  9. 28 6月, 2022 1 次提交
  10. 23 6月, 2022 2 次提交
  11. 14 6月, 2022 8 次提交
  12. 31 5月, 2022 1 次提交
  13. 28 5月, 2022 1 次提交
  14. 16 5月, 2022 3 次提交
    • S
      nvme-pci: harden drive presence detect in nvme_dev_disable() · b98235d3
      Stefan Roese 提交于
      On our ZynqMP system we observe, that a NVMe drive that resets itself
      while doing a firmware update causes a Kernel crash like this:
      
      [ 67.720772] pcieport 0000:02:02.0: pciehp: Slot(2): Link Down
      [ 67.720783] pcieport 0000:02:02.0: pciehp: Slot(2): Card not present
      [ 67.720795] nvme 0000:04:00.0: PME# disabled
      [ 67.720849] Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP
      [ 67.720853] nwl-pcie fd0e0000.pcie: Slave error
      
      Analysis: When nvme_dev_disable() is called because of this PCIe hotplug
      event, pci_is_enabled() is still true. And accessing the NVMe drive
      which is currently not available as it's in reboot process causes this
      "synchronous external abort" on this ARM64 platform.
      
      This patch adds the pci_device_is_present() check as well, which returns
      false in this "Card not present" hot-plug case. With this change, the
      NVMe driver does not try to access the NVMe registers any more and the
      FW update finishes without any problems.
      Signed-off-by: NStefan Roese <sr@denx.de>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      b98235d3
    • S
      nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags · da427611
      Smith, Kyle Miller (Nimble Kernel) 提交于
      In nvme_alloc_admin_tags, the admin_q can be set to an error (typically
      -ENOMEM) if the blk_mq_init_queue call fails to set up the queue, which
      is checked immediately after the call. However, when we return the error
      message up the stack, to nvme_reset_work the error takes us to
      nvme_remove_dead_ctrl()
        nvme_dev_disable()
         nvme_suspend_queue(&dev->queues[0]).
      
      Here, we only check that the admin_q is non-NULL, rather than not
      an error or NULL, and begin quiescing a queue that never existed, leading
      to bad / NULL pointer dereference.
      Signed-off-by: NKyle Smith <kyles@hpe.com>
      Reviewed-by: NChaitanya Kulkarni <kch@nvidia.com>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      da427611
    • C
      nvme: mark internal passthru request RQF_QUIET · 128126a7
      Chaitanya Kulkarni 提交于
      Most of the internal passthru commands use __nvme_submit_sync_cmd()
      interface. There are few places we open code the request submission :-
      
      1. nvme_keep_alive_work(struct work_struct *work)
      2. nvme_timeout(struct request *req, bool reserved)
      3. nvme_delete_queue(struct nvme_queue *nvmeq, u8 opcode)
      
      Mark the internal passthru request quiet so that we can skip the verbose
      error message from nvme_log_error() in nvme_end_req() completion path,
      this will be consistent with what we have in __nvme_submit_sync_cmd().
      Signed-off-by: NChaitanya Kulkarni <kch@nvidia.com>
      Reviewed-by: NAlan Adamson <alan.adamson@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      128126a7
  15. 15 4月, 2022 2 次提交
  16. 23 3月, 2022 2 次提交
  17. 16 3月, 2022 1 次提交
  18. 04 3月, 2022 1 次提交
  19. 27 1月, 2022 1 次提交
  20. 06 1月, 2022 1 次提交
  21. 17 12月, 2021 3 次提交
  22. 29 11月, 2021 1 次提交