1. 23 1月, 2017 1 次提交
  2. 15 12月, 2016 1 次提交
  3. 22 11月, 2016 1 次提交
  4. 17 11月, 2016 2 次提交
  5. 09 11月, 2016 2 次提交
  6. 08 11月, 2016 1 次提交
    • T
      genirq: Use irq type from irqdata instead of irqdesc · 7ee7e87d
      Thomas Gleixner 提交于
      The type flags in the irq descriptor are there for historical reasons and
      only updated via irq_modify_status() or irq_set_type(). Both functions also
      update the type flags in irqdata. __setup_irq() is the only left over user
      of the type flags in the irq descriptor.
      
      If __setup_irq() is called with empty irq type flags, then the type flags
      are retrieved from irqdata. If an interrupt is shared, then the type flags
      are compared with the type flags stored in the irq descriptor. 
      
      On x86 the ioapic does not have a irq_set_type() callback because the type
      is defined in the BIOS tables and cannot be changed. The type is stored in
      irqdata at setup time without updating the type data in the irq
      descriptor. As a result the comparison described above fails.
      
      There is no point in updating the irq descriptor flags because the only
      relevant storage is irqdata. Use the type flags from irqdata for both
      retrieval and comparison in __setup_irq() instead.
      
      Aside of that the print out in case of non matching type flags has the old
      and new type flags arguments flipped. Fix that as well.
      
      For correctness sake the flags stored in the irq descriptor should be
      removed, but this is beyond the scope of this bugfix and will be done in a
      later patch.
      
      Fixes: 4b357dae ("genirq: Look-up trigger type if not specified by caller")
      Reported-and-tested-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Jon Hunter <jonathanh@nvidia.com>
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1611072020360.3501@nanosSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      7ee7e87d
  7. 21 10月, 2016 1 次提交
  8. 26 9月, 2016 1 次提交
  9. 19 9月, 2016 1 次提交
  10. 15 9月, 2016 4 次提交
  11. 14 9月, 2016 1 次提交
    • C
      genirq: Expose interrupt information through sysfs · ecb3f394
      Craig Gallek 提交于
      Information about interrupts is exposed via /proc/interrupts, but the
      format of that file has changed over kernel versions and differs across
      architectures. It also has varying column numbers depending on hardware.
      
      That all makes it hard for tools to parse.
      
      To solve this, expose the information through sysfs so each irq attribute
      is in a separate file in a consistent, machine parsable way.
      
      This feature is only available when both CONFIG_SPARSE_IRQ and
      CONFIG_SYSFS are enabled.
      
      Examples:
        /sys/kernel/irq/18/actions:	i801_smbus,ehci_hcd:usb1,uhci_hcd:usb7
        /sys/kernel/irq/18/chip_name:	IR-IO-APIC
        /sys/kernel/irq/18/hwirq:		18
        /sys/kernel/irq/18/name:		fasteoi
        /sys/kernel/irq/18/per_cpu_count:	0,0
        /sys/kernel/irq/18/type:		level
      
        /sys/kernel/irq/25/actions:	ahci0
        /sys/kernel/irq/25/chip_name:	IR-PCI-MSI
        /sys/kernel/irq/25/hwirq:		512000
        /sys/kernel/irq/25/name:		edge
        /sys/kernel/irq/25/per_cpu_count:	29036,0
        /sys/kernel/irq/25/type:		edge
      
      [ tglx: Moved kobject_del() under sparse_irq_lock, massaged code comments
        	and changelog ]
      Signed-off-by: NCraig Gallek <kraig@google.com>
      Cc: David Decotigny <decot@google.com>
      Link: http://lkml.kernel.org/r/1473783291-122873-1-git-send-email-kraigatgoog@gmail.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      ecb3f394
  12. 06 9月, 2016 1 次提交
  13. 05 9月, 2016 1 次提交
  14. 03 9月, 2016 6 次提交
  15. 22 8月, 2016 2 次提交
  16. 17 8月, 2016 1 次提交
  17. 09 8月, 2016 1 次提交
  18. 19 7月, 2016 1 次提交
  19. 11 7月, 2016 1 次提交
  20. 04 7月, 2016 7 次提交
  21. 23 6月, 2016 1 次提交
    • J
      irqdomain: Fix disposal of mappings for interrupt hierarchies · d16dcd3d
      Jon Hunter 提交于
      The function irq_create_of_mapping() is used to create an interrupt
      mapping. However, depending on whether the irqdomain, to which the
      interrupt belongs, is part of a hierarchy, determines whether the
      mapping is created via calling irq_domain_alloc_irqs() or
      irq_create_mapping().
      
      To dispose of the interrupt mapping, drivers call irq_dispose_mapping().
      However, this function does not check to see if the irqdomain is part
      of a hierarchy or not and simply assumes that it was mapped via calling
      irq_create_mapping() so calls irq_domain_disassociate() to unmap the
      interrupt.
      
      Fix this by checking to see if the irqdomain is part of a hierarchy and
      if so call irq_domain_free_irqs() to free/unmap the interrupt.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Jiang Liu <jiang.liu@linux.intel.com>
      Link: http://lkml.kernel.org/r/1466501002-16368-1-git-send-email-jonathanh@nvidia.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      d16dcd3d
  22. 18 6月, 2016 1 次提交
    • K
      genirq: Add untracked irq handler · edd14cfe
      Keith Busch 提交于
      This adds a software irq handler for controllers that multiplex
      interrupts from multiple devices, but don't know which device generated
      the interrupt. For these devices, the irq handler that demuxes must
      check every action for every software irq using the same h/w irq in order
      to find out which device generated the interrupt. This will inevitably
      trigger spurious interrupt detection if we are noting the irq.
      
      The new irq handler does not track the handling for spurious interrupt
      detection. An irq that uses this also won't get stats tracked since it
      didn't generate the interrupt, nor added to randomness since they are
      not random.
      Signed-off-by: NKeith Busch <keith.busch@intel.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: linux-pci@vger.kernel.org
      Cc: Jon Derrick <jonathan.derrick@intel.com>
      Link: http://lkml.kernel.org/r/1466200821-29159-1-git-send-email-keith.busch@intel.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      edd14cfe
  23. 13 6月, 2016 1 次提交