1. 14 8月, 2013 4 次提交
  2. 10 7月, 2013 1 次提交
  3. 26 6月, 2013 1 次提交
  4. 25 6月, 2013 2 次提交
  5. 24 6月, 2013 1 次提交
  6. 23 6月, 2013 2 次提交
  7. 21 6月, 2013 1 次提交
  8. 20 6月, 2013 8 次提交
  9. 19 6月, 2013 1 次提交
  10. 04 6月, 2013 2 次提交
    • A
      x86/MSI: Conserve interrupt resources when using multiple-MSIs · 13da7a34
      Alexander Gordeev 提交于
      Current multiple-MSI implementation does not take into account actual
      number of requested MSIs and always rounds that number to a larger
      power-of-two value.  Yet, the number of MSIs a PCI device could send (and
      therefore the number of messages a device driver could request) may be
      smaller.  As result, resources allocated for extra MSIs are just wasted.
      
      This update takes advantage of 'msi_desc::nvec_used' field introduced with
      generic MSI code to track the number of requested and used MSIs.  As
      result, resources associated with interrupts are conserved.  Of those
      resources most noticeable are x86 interrupt vectors.
      
      The initial version of this fix also conserved IRTEs, but Jan noticed that
      a malfunctioning PCI device might send a message number it did not claim
      and thus refer to an IRTE it does not own.  To avoid this security hole,
      as many IRTEs are reserved as the device could possibly send.
      
      [bhelgaas: changelog, rename to "nvec_used"]
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NJoerg Roedel <joro@8bytes.org>
      13da7a34
    • A
      x86/MSI: Conserve interrupt resources when using multiple-MSIs · 5fec9451
      Alexander Gordeev 提交于
      Current multiple-MSI implementation does not take into account actual
      number of requested MSIs and always rounds that number to a larger
      power-of-two value.  Yet, the number of MSIs a PCI device could send (and
      therefore the number of messages a device driver could request) may be
      smaller.  As result, resources allocated for extra MSIs are just wasted.
      
      This update takes advantage of 'msi_desc::nvec_used' field introduced with
      generic MSI code to track the number of requested and used MSIs.  As
      result, resources associated with interrupts are conserved.  Of those
      resources most noticeable are x86 interrupt vectors.
      
      The initial version of this fix also conserved IRTEs, but Jan noticed that
      a malfunctioning PCI device might send a message number it did not claim
      and thus refer to an IRTE it does not own.  To avoid this security hole,
      as many IRTEs are reserved as the device could possibly send.
      
      [bhelgaas: changelog, rename to "nvec_used"]
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      5fec9451
  11. 02 5月, 2013 1 次提交
    • V
      iommu/tegra: Fix printk formats for dma_addr_t · 72ca55db
      Varun Sethi 提交于
      Fix printk formats for dma_addr_t:
      
         drivers/iommu/tegra-smmu.c: In function 'smmu_iommu_iova_to_phys':
      >> drivers/iommu/tegra-smmu.c:774:2: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'dma_addr_t' [-Wformat]
      --
         drivers/iommu/tegra-gart.c: In function 'gart_iommu_iova_to_phys':
      >> drivers/iommu/tegra-gart.c:298:3: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'dma_addr_t' [-Wformat]
      Signed-off-by: NVarun Sethi <Varun.Sethi@freescale.com>
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      72ca55db
  12. 25 4月, 2013 2 次提交
  13. 24 4月, 2013 1 次提交
  14. 23 4月, 2013 4 次提交
    • V
      iommu: Move swap_pci_ref function to drivers/iommu/pci.h. · 61e015ac
      Varun Sethi 提交于
      The swap_pci_ref function is used by the IOMMU API code for
      swapping pci device pointers, while determining the iommu
      group for the device.
      Currently this function was being implemented for different
      IOMMU drivers.  This patch moves the function to a new file,
      drivers/iommu/pci.h so that the implementation can be
      shared across various IOMMU drivers.
      Signed-off-by: NVarun Sethi <Varun.Sethi@freescale.com>
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      61e015ac
    • T
      iommu/vt-d: Disable translation if already enabled · 3a93c841
      Takao Indoh 提交于
      This patch disables translation(dma-remapping) before its initialization
      if it is already enabled.
      
      This is needed for kexec/kdump boot. If dma-remapping is enabled in the
      first kernel, it need to be disabled before initializing its page table
      during second kernel boot. Wei Hu also reported that this is needed
      when second kernel boots with intel_iommu=off.
      
      Basically iommu->gcmd is used to know whether translation is enabled or
      disabled, but it is always zero at boot time even when translation is
      enabled since iommu->gcmd is initialized without considering such a
      case. Therefor this patch synchronizes iommu->gcmd value with global
      command register when iommu structure is allocated.
      Signed-off-by: NTakao Indoh <indou.takao@jp.fujitsu.com>
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      3a93c841
    • W
      iommu/amd: fix error return code in early_amd_iommu_init() · 83ed9c13
      Wei Yongjun 提交于
      Fix to return -ENOMEM int the memory alloc error handling
      case instead of 0, as done elsewhere in this function.
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      83ed9c13
    • S
      iommu/AMD: Per-thread IOMMU Interrupt Handling · 3f398bc7
      Suravee Suthikulpanit 提交于
      In the current interrupt handling scheme, there are as many threads as
      the number of IOMMUs. Each thread is created and assigned to an IOMMU at
      the time of registering interrupt handlers (request_threaded_irq).
      When an IOMMU HW generates an interrupt, the irq handler (top half) wakes up
      the corresponding thread to process event and PPR logs of all IOMMUs
      starting from the 1st IOMMU.
      
      In the system with multiple IOMMU,this handling scheme complicates the
      synchronization of the IOMMU data structures and status registers as
      there could be multiple threads competing for the same IOMMU while
      the other IOMMU could be left unhandled.
      
      To simplify, this patch is proposing a different interrupt handling scheme
      by having each thread only managing interrupts of the corresponding IOMMU.
      This can be achieved by passing the struct amd_iommu when registering the
      interrupt handlers. This structure is unique for each IOMMU and can be used
      by the bottom half thread to identify the IOMMU to be handled instead
      of calling for_each_iommu.  Besides this also eliminate the needs to lock
      the IOMMU for processing event and PPR logs.
      Signed-off-by: NSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      3f398bc7
  15. 20 4月, 2013 6 次提交
  16. 18 4月, 2013 3 次提交