1. 20 Jul, 2016 2 commits
    • Tom Yan's avatar
      libata-scsi: better style in ata_msense_*() · 737bee93
      Tom Yan authored
      `changeable` is the "version" of mode page requested by the user.
      It will be less confusing/misleading if we do not check it
      "together" with the setting bits of the drive.
      
      Not to mention that we currently have ata_mselect_*() implemented
      in a way that each of them will serve exclusively a particular bit
      on each page. The old style will hence make the condition look even
      more unnecessarily arcane if the ata_msense_*() is reflecting more
      than one bit.
      Signed-off-by: default avatarTom Yan <tom.ty89@gmail.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      737bee93
    • Pang Raymond's avatar
      AHCI: Clear GHC.IS to prevent unexpectly asserting INTx · 0516900a
      Pang Raymond authored
      Due to PCI subsystem behaviour, unloading AHCI driver will disable
      MSI and enable INTx. When HBA supports MSIx or Multiple MSI, Driver's
      irq handler doesn't clear GHC.IS register. It works well when reading or
      writing data and GHC.IS is always non-zero. But when unloading driver
      (or any other operation which causes disable MSIx and enable INTx), PCI
       subsystem uses config write(Rx04.bit10) to enable INTx. Because
      GHC.IS is non-zero, HBA will falsely assume some port needs interrupt
      service. Then it asserts INTx. To make things worse, when AHCI controller
      shares the same interrupt pin with other PCI device, that PCI device's ISR
      will be called and nobody de-asserts previous INTx.
      This patch clears GHC.IS in ahci_port_stop() even when using MSIx or
      MMSI to prevent this case. It ensures GHC.IS is zero before PCI subsystem
      enables INTx.
      
      tj: Minor updates to the comment.
      Signed-off-by: default avatarRaymond Pang <raymond_rule@hotmail.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      0516900a
  2. 19 Jul, 2016 4 commits
  3. 18 Jul, 2016 1 commit
    • Tom Yan's avatar
      ata: make lba_{28,48}_ok() use ATA_MAX_SECTORS{,_LBA48} · 35303d5c
      Tom Yan authored
      Since we set ATA_MAX_SECTORS_LBA48 to 65535 to avoid the corner case
      in some drives that commands with "count" set to 0000h (which
      reprsents 65536) does not work as expected, lba_48_ok(), which is
      used for number-of-blocks checking when libata pack commands, should
      use the same limit as well. In fact, there is no reason for the two
      functions not to use the macros anyway.
      Signed-off-by: default avatarTom Yan <tom.ty89@gmail.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      35303d5c
  4. 15 Jul, 2016 4 commits
  5. 14 Jul, 2016 5 commits
  6. 12 Jul, 2016 9 commits
  7. 06 Jul, 2016 2 commits
  8. 28 Jun, 2016 1 commit
  9. 17 Jun, 2016 1 commit
    • Arnd Bergmann's avatar
      ata: fix "ering" sysfs time printing · f3f99d37
      Arnd Bergmann authored
      The sysfs file for the libata error handling has multiple issues
      in the way it prints time stamps:
      
       * it prints a 9-digit nanosecond value using a %06lu format string,
         which drops some leading zeroes
       * it converts a 64-bit jiffes value to a timespec using
         jiffies_to_timespec(), which takes a 'long' argument, so the
         result is wrong after a jiffies overflow (49 days).
       * we try to avoid using timespec because that generally overflows
         in 2038, although this particular usage is ok.
      
      This replaces the jiffies_to_timespec call with an open-coded
      implementation that gets it right.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      f3f99d37
  10. 16 Jun, 2016 7 commits
  11. 27 May, 2016 4 commits