1. 01 Jul, 2016 3 commits
    • Sinan Kaya's avatar
      ACPI,PCI,IRQ: separate ISA penalty calculation · f7eca374
      Sinan Kaya authored
      Since commit 103544d8 (ACPI,PCI,IRQ: reduce resource requirements)
      the penalty values are calculated on the fly rather than at boot time.
      
      This works fine for PCI interrupts but not so well for ISA interrupts.
      
      The information on whether or not an ISA interrupt is in use is not
      available to the pci_link.c code directly.  That information is
      obtained from the outside via acpi_penalize_isa_irq().  [If its
      "active" argument is true, then the IRQ is in use by ISA.]
      
      Since the current code relies on PCI Link objects for determination
      of penalties, we are factoring in the PCI penalty twice after
      acpi_penalize_isa_irq() function is called.
      
      To avoid that, limit the newly added functionality to just PCI
      interrupts so that old behavior is still maintained.
      
      Fixes: 103544d8 (ACPI,PCI,IRQ: reduce resource requirements)
      Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
      Tested-by: default avatarWim Osterholt <wim@djo.tudelft.nl>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f7eca374
    • Sinan Kaya's avatar
      Revert "ACPI, PCI, IRQ: remove redundant code in acpi_irq_penalty_init()" · 487cf917
      Sinan Kaya authored
      Trying to make the ISA and PCI init functionality common turned out
      to be a bad idea, because the ISA path depends on external
      functionality.
      
      Restore the previous behavior and limit the refactoring to PCI
      interrupts only.
      
      Fixes: 1fcb6a81 "ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()"
      Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
      Tested-by: default avatarWim Osterholt <wim@djo.tudelft.nl>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      487cf917
    • Sinan Kaya's avatar
      ACPI,PCI,IRQ: factor in PCI possible · 4a6e68bf
      Sinan Kaya authored
      The change introduced in commit 103544d8 (ACPI,PCI,IRQ: reduce
      resource requirements) omitted the initially applied PCI_POSSIBLE
      penalty when the IRQ is active.
      
      Incorrect calculation of the penalty leads the ACPI code to assigning
      a wrong interrupt number to a PCI INTx interrupt.
      
      This would not be as bad as it sounds in theory.  It would just cause
      the interrupts to be shared and result in performance penalty.
      
      However, some drivers (like the parallel port driver) don't like
      interrupt sharing and in the above case they will causes all of
      the PCI drivers wanting to share the interrupt to be unable to
      request it.
      
      The issue has not been caught in testing because the behavior is
      platform-specific and depends on the peripherals ending up sharing
      the IRQ and their drivers.
      
      Before the above commit the code would add the PCI_POSSIBLE value
      divided by the number of possible IRQ users to the IRQ penalty
      during initialization.
      
      Later in that code path, if the IRQ is chosen as the active IRQ or
      if it is used by ISA; additional penalties are added.
      
      Fixes: 103544d8 (ACPI,PCI,IRQ: reduce resource requirements)
      Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
      Tested-by: default avatarWim Osterholt <wim@djo.tudelft.nl>
      [ rjw: Changelog ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4a6e68bf
  2. 30 Jun, 2016 1 commit
  3. 27 Jun, 2016 1 commit
  4. 26 Jun, 2016 1 commit
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 2ac9b973
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two straightforward fixes.
      
        One is a concurrency issue only affecting SAS connected SATA drives,
        but which could hang the storage subsystem if it triggers (because the
        outstanding command count on error never goes back to zero) and the
        other is a NO_TAG fallout from the switch to hostwide tags which
        causes the system to crash on module insertion (we've checked
        carefully and only the 53c700 family of drivers is vulnerable to this
        issue)"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        53c700: fix BUG on untagged commands
        scsi: fix race between simultaneous decrements of ->host_failed
      2ac9b973
  5. 25 Jun, 2016 34 commits