1. 14 1月, 2022 1 次提交
    • D
      ata: sata_fsl: fix scsi host initialization · e5b48ee3
      Damien Le Moal 提交于
      When compiling with W=1, the sata_fsl driver compilation throws the
      warning:
      
      drivers/ata/sata_fsl.c:1385:22: error: initialized field overwritten
      [-Werror=override-init]
       1385 |         .can_queue = SATA_FSL_QUEUE_DEPTH,
      
      This is due to the driver scsi host template initialization overwriting
      the can_queue field that is already set using the ATA_NCQ_SHT()
      initializer macro, resulting in the same field being initialized twice
      in the host template declaration.
      
      To remove this warning, introduce the ATA_SUBBASE_SHT_QD() and
      ATA_NCQ_SHT_QD() initialization macros to allow specifying a queue depth
      different from the default ATA_DEF_QUEUE using an additional argument to
      the macro.
      Signed-off-by: NDamien Le Moal <damien.lemoal@opensource.wdc.com>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      e5b48ee3
  2. 05 1月, 2022 10 次提交
  3. 04 1月, 2022 1 次提交
  4. 12 11月, 2021 1 次提交
    • D
      libata: add horkage for missing Identify Device log · 636f6e2a
      Damien Le Moal 提交于
      ACS-3 introduced the ATA Identify Device Data log as mandatory. A
      warning message currently signals to the user if a device does not
      report supporting this log page in the log directory page, regardless
      of the ATA version of the device. Furthermore, this warning will appear
      for all attempts at accessing this missing log page during device
      revalidation.
      
      Since it is useless to constantly access the log directory and warn
      about this lack of support once we have discovered that the device
      does not support this log page, introduce the horkage flag
      ATA_HORKAGE_NO_ID_DEV_LOG to mark a device as lacking support for
      the Identify Device Data log page. Set this flag when
      ata_log_supported() returns false in ata_identify_page_supported().
      The warning is printed only if the device ATA level is 10 or above
      (ACS-3 or above), and only once on device scan. With this flag set, the
      log directory page is not accessed again to test for Identify Device
      Data log page support.
      Signed-off-by: NDamien Le Moal <damien.lemoal@opensource.wdc.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      636f6e2a
  5. 11 11月, 2021 1 次提交
    • D
      libata: fix read log timeout value · 68dbbe7d
      Damien Le Moal 提交于
      Some ATA drives are very slow to respond to READ_LOG_EXT and
      READ_LOG_DMA_EXT commands issued from ata_dev_configure() when the
      device is revalidated right after resuming a system or inserting the
      ATA adapter driver (e.g. ahci). The default 5s timeout
      (ATA_EH_CMD_DFL_TIMEOUT) used for these commands is too short, causing
      errors during the device configuration. Ex:
      
      ...
      ata9: SATA max UDMA/133 abar m524288@0x9d200000 port 0x9d200400 irq 209
      ata9: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
      ata9.00: ATA-9: XXX  XXXXXXXXXXXXXXX, XXXXXXXX, max UDMA/133
      ata9.00: qc timeout (cmd 0x2f)
      ata9.00: Read log page 0x00 failed, Emask 0x4
      ata9.00: Read log page 0x00 failed, Emask 0x40
      ata9.00: NCQ Send/Recv Log not supported
      ata9.00: Read log page 0x08 failed, Emask 0x40
      ata9.00: 27344764928 sectors, multi 16: LBA48 NCQ (depth 32), AA
      ata9.00: Read log page 0x00 failed, Emask 0x40
      ata9.00: ATA Identify Device Log not supported
      ata9.00: failed to set xfermode (err_mask=0x40)
      ata9: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
      ata9.00: configured for UDMA/133
      ...
      
      The timeout error causes a soft reset of the drive link, followed in
      most cases by a successful revalidation as that give enough time to the
      drive to become fully ready to quickly process the read log commands.
      However, in some cases, this also fails resulting in the device being
      dropped.
      
      Fix this by using adding the ata_eh_revalidate_timeouts entries for the
      READ_LOG_EXT and READ_LOG_DMA_EXT commands. This defines a timeout
      increased to 15s, retriable one time.
      Reported-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Tested-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDamien Le Moal <damien.lemoal@opensource.wdc.com>
      68dbbe7d
  6. 27 10月, 2021 1 次提交
  7. 17 10月, 2021 1 次提交
  8. 03 9月, 2021 1 次提交
  9. 25 8月, 2021 1 次提交
  10. 18 8月, 2021 2 次提交
  11. 16 6月, 2021 1 次提交
  12. 03 9月, 2020 1 次提交
    • T
      libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks · 3b545563
      Tejun Heo 提交于
      All three generations of Sandisk SSDs lock up hard intermittently.
      Experiments showed that disabling NCQ lowered the failure rate significantly
      and the kernel has been disabling NCQ for some models of SD7's and 8's,
      which is obviously undesirable.
      
      Karthik worked with Sandisk to root cause the hard lockups to trim commands
      larger than 128M. This patch implements ATA_HORKAGE_MAX_TRIM_128M which
      limits max trim size to 128M and applies it to all three generations of
      Sandisk SSDs.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Karthik Shivaram <karthikgs@fb.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      3b545563
  13. 24 6月, 2020 1 次提交
  14. 18 6月, 2020 1 次提交
  15. 16 6月, 2020 2 次提交
  16. 23 4月, 2020 1 次提交
  17. 27 3月, 2020 13 次提交