1. 22 8月, 2018 1 次提交
  2. 31 5月, 2018 1 次提交
  3. 29 5月, 2018 1 次提交
  4. 25 5月, 2018 1 次提交
  5. 12 5月, 2018 1 次提交
  6. 10 5月, 2018 1 次提交
  7. 09 3月, 2018 1 次提交
  8. 13 10月, 2017 1 次提交
  9. 06 7月, 2017 2 次提交
  10. 23 6月, 2017 1 次提交
    • J
      mtip32xx: fix up the checking for internal command failure · 8c66ac6a
      Jens Axboe 提交于
      This fixes up two commits that have touched this driver. The
      command status field is now a blk_status_t, so we can't check
      for < 0 and we definitely can't assume it's holding -Exxxx error
      values. All we care about here is whether ->status is zero or not.
      Check for that, and remove the various attempts at smart error
      reporting. Just log to dmesg what command failed, and the
      blk_status_t value.
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Fixes: 2a842aca ("block: introduce new block status code type")
      Fixes: 3f5e6a35 ("mtip32xx: convert internal command issue to block IO path")
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      8c66ac6a
  11. 09 6月, 2017 2 次提交
    • C
      blk-mq: switch ->queue_rq return value to blk_status_t · fc17b653
      Christoph Hellwig 提交于
      Use the same values for use for request completion errors as the return
      value from ->queue_rq.  BLK_STS_RESOURCE is special cased to cause
      a requeue, and all the others are completed as-is.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      fc17b653
    • C
      block: introduce new block status code type · 2a842aca
      Christoph Hellwig 提交于
      Currently we use nornal Linux errno values in the block layer, and while
      we accept any error a few have overloaded magic meanings.  This patch
      instead introduces a new  blk_status_t value that holds block layer specific
      status codes and explicitly explains their meaning.  Helpers to convert from
      and to the previous special meanings are provided for now, but I suspect
      we want to get rid of them in the long run - those drivers that have a
      errno input (e.g. networking) usually get errnos that don't know about
      the special block layer overloads, and similarly returning them to userspace
      will usually return somethings that strictly speaking isn't correct
      for file system operations, but that's left as an exercise for later.
      
      For now the set of errors is a very limited set that closely corresponds
      to the previous overloaded errno values, but there is some low hanging
      fruite to improve it.
      
      blk_status_t (ab)uses the sparse __bitwise annotations to allow for sparse
      typechecking, so that we can easily catch places passing the wrong values.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      2a842aca
  12. 03 5月, 2017 2 次提交
  13. 02 5月, 2017 6 次提交
  14. 27 4月, 2017 1 次提交
    • M
      mtip32xx: use runtime tag to initialize command header · a4e84aae
      Ming Lei 提交于
      mtip32xx supposes that 'request_idx' passed to .init_request()
      is tag of the request, and use that as request's tag to initialize
      command header.
      
      After MQ IO scheduler is in, request tag assigned isn't same with
      the request index anymore, so cause strange hardware failure on
      mtip32xx, even whole system panic is triggered.
      
      This patch fixes the issue by initializing command header via
      request's real tag.
      Signed-off-by: NMing Lei <ming.lei@redhat.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      a4e84aae
  15. 21 4月, 2017 3 次提交
  16. 20 4月, 2017 1 次提交
    • M
      mtip32xx: pass BLK_MQ_F_NO_SCHED · 4981d04d
      Ming Lei 提交于
      The recent introduced MQ IO scheduler breaks mtip32xx in the
      following way.
      
      mtip32xx use the 'request_index' passed to .init_request() as
      hardware tag index for initializing hardware queue, and it
      actually require that rq->tag is always same with 'request_index'
      passed to .init_request(). Current blk-mq IO scheduler can't
      guarantee this point, so this patch passes BLK_MQ_F_NO_SCHED
      and at least make mtip32xx working.
      
      This patch fixes the following strange hardware failure. The
      issue can be triggered easily when doing I/O with mq-deadline
      enabled.
      
      [  186.972578] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 32993
      [  186.972578] {1}[Hardware Error]: event severity: fatal
      [  186.972579] {1}[Hardware Error]:  Error 0, type: fatal
      [  186.972580] {1}[Hardware Error]:   section_type: PCIe error
      [  186.972580] {1}[Hardware Error]:   port_type: 0, PCIe end point
      [  186.972581] {1}[Hardware Error]:   version: 1.0
      [  186.972581] {1}[Hardware Error]:   command: 0x0407, status: 0x0010
      [  186.972582] {1}[Hardware Error]:   device_id: 0000:07:00.0
      [  186.972582] {1}[Hardware Error]:   slot: 4
      [  186.972583] {1}[Hardware Error]:   secondary_bus: 0x00
      [  186.972583] {1}[Hardware Error]:   vendor_id: 0x1344, device_id: 0x5150
      [  186.972584] {1}[Hardware Error]:   class_code: 008001
      [  186.972585] Kernel panic - not syncing: Fatal hardware error!
      Reported-by: NJozef Mikovic <jmikovic@redhat.com>
      Signed-off-by: NMing Lei <ming.lei@redhat.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      4981d04d
  17. 09 4月, 2017 1 次提交
  18. 31 3月, 2017 1 次提交
  19. 29 3月, 2017 1 次提交
  20. 01 12月, 2016 1 次提交
  21. 12 11月, 2016 1 次提交
  22. 15 9月, 2016 1 次提交
  23. 29 8月, 2016 1 次提交
  24. 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
  25. 08 6月, 2016 1 次提交
  26. 13 4月, 2016 2 次提交
  27. 19 3月, 2016 1 次提交
  28. 04 3月, 2016 2 次提交