1. 15 8月, 2016 1 次提交
  2. 21 7月, 2016 2 次提交
  3. 14 7月, 2016 2 次提交
    • N
      NVMe: don't allocate unused nvme_major · b09dcf58
      NeilBrown 提交于
      When alloc_disk(0) is used, the ->major number is ignored.  All device
      numbers are allocated with a major of BLOCK_EXT_MAJOR.
      
      So remove all references to nvme_major.
      
      [akpm@linux-foundation.org: one unregister_blkdev() was missed]
      Link: http://lkml.kernel.org/r/20160602064318.4403.93301.stgit@nobleSigned-off-by: NNeilBrown <neilb@suse.com>
      Reviewed-by: NKeith Busch <keith.busch@intel.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Maxim Levitsky <maximlevitsky@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      b09dcf58
    • K
      nvme: Remove RCU namespace protection · 32f0c4af
      Keith Busch 提交于
      We can't sleep with RCU read lock held, but we need to do potentially
      blocking stuff to namespace queues when iterating the list. This patch
      removes the RCU locking and holds a mutex instead.
      
      To prevent deadlocks, this patch removes holding the mutex during
      namespace scanning and removal. The unlocked namespace scanning is made
      safe by holding a reference to the namespace being scanned.
      
      List iteration that does IO has to be unlocked to allow error recovery.
      The caller must ensure the list can not be manipulated during such an
      event, so this patch adds a comment explaining this requirement to the
      only function that iterates an unlocked list. All callers currently
      meet this requirement, so no further changes required.
      
      List iterations that do not do IO can safely use the lock since it couldn't
      block recovery from missing forced IO completions.
      
      Reported-by: Ming Lin <mlin at kernel.org>
      [fixes 0bf77e9d nvme: switch to RCU freeing the namespace]
      Signed-off-by: NKeith Busch <keith.busch@intel.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      32f0c4af
  4. 13 7月, 2016 1 次提交
    • K
      nvme: Limit command retries · f80ec966
      Keith Busch 提交于
      Many controller implementations will return errors to commands that will
      not succeed, but without the DNR bit set. The driver previously retried
      these commands an unlimited number of times until the command timeout
      has exceeded, which takes an unnecessarilly long period of time.
      
      This patch limits the number of retries a command can have, defaulting
      to 5, but is user tunable at load or runtime.
      
      The struct request's 'retries' field is used to track the number of
      retries attempted. This is in contrast with scsi's use of this field,
      which indicates how many retries are allowed.
      Signed-off-by: NKeith Busch <keith.busch@intel.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      f80ec966
  5. 12 7月, 2016 1 次提交
    • G
      nvme/quirk: Add a delay before checking for adapter readiness · 54adc010
      Guilherme G. Piccoli 提交于
      When disabling the controller, the specification says the register
      NVME_REG_CC should be written and then driver needs to wait the
      adapter to be ready, which is checked by reading another register
      bit (NVME_CSTS_RDY). There's a timeout validation in this checking,
      so in case this timeout is reached the driver gives up and removes
      the adapter from the system.
      
      After a firmware activation procedure, the PCI_DEVICE(0x1c58, 0x0003)
      (HGST adapter) end up being removed if we issue a reset_controller,
      because driver keeps verifying the NVME_REG_CSTS until the timeout is
      reached. This patch adds a necessary quirk for this adapter, by
      introducing a delay before nvme_wait_ready(), so the reset procedure
      is able to be completed. This quirk is needed because just increasing
      the timeout is not enough in case of this adapter - the driver must
      wait before start reading NVME_REG_CSTS register on this specific
      device.
      Signed-off-by: NGuilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      54adc010
  6. 08 7月, 2016 1 次提交
  7. 06 7月, 2016 6 次提交
  8. 28 6月, 2016 1 次提交
    • D
      block: convert to device_add_disk() · 0d52c756
      Dan Williams 提交于
      For block drivers that specify a parent device, convert them to use
      device_add_disk().
      
      This conversion was done with the following semantic patch:
      
          @@
          struct gendisk *disk;
          expression E;
          @@
      
          - disk->driverfs_dev = E;
          ...
          - add_disk(disk);
          + device_add_disk(E, disk);
      
          @@
          struct gendisk *disk;
          expression E1, E2;
          @@
      
          - disk->driverfs_dev = E1;
          ...
          E2 = disk;
          ...
          - add_disk(E2);
          + device_add_disk(E1, E2);
      
      ...plus some manual fixups for a few missed conversions.
      
      Cc: Jens Axboe <axboe@fb.com>
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: James Bottomley <James.Bottomley@hansenpartnership.com>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      0d52c756
  9. 12 6月, 2016 3 次提交
  10. 08 6月, 2016 5 次提交
  11. 18 5月, 2016 3 次提交
  12. 02 5月, 2016 6 次提交
  13. 13 4月, 2016 2 次提交
  14. 16 3月, 2016 1 次提交
  15. 08 3月, 2016 1 次提交
  16. 04 3月, 2016 4 次提交