]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Jul 2016 04:35:03 +0000 (21:35 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Jul 2016 04:35:03 +0000 (21:35 -0700)
Pull irq updates from Thomas Gleixner:
 "The irq department delivers:

   - new core infrastructure to allow better management of multi-queue
     devices (interrupt spreading, node aware descriptor allocation ...)

   - a new interrupt flow handler to support the new fangled Intel VMD
     devices.

   - yet another new interrupt controller driver.

   - a series of fixes which addresses sparse warnings, missing
     includes, missing static declarations etc from Ben Dooks.

   - a fix for the error handling in the hierarchical domain allocation
     code.

   - the usual pile of small updates to core and driver code"

* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
  genirq: Fix missing irq allocation affinity hint
  irqdomain: Fix irq_domain_alloc_irqs_recursive() error handling
  irq/Documentation: Correct result of echnoing 5 to smp_affinity
  MAINTAINERS: Remove Jiang Liu from irq domains
  genirq/msi: Fix broken debug output
  genirq: Add a helper to spread an affinity mask for MSI/MSI-X vectors
  genirq/msi: Make use of affinity aware allocations
  genirq: Use affinity hint in irqdesc allocation
  genirq: Add affinity hint to irq allocation
  genirq: Introduce IRQD_AFFINITY_MANAGED flag
  genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP
  irqchip/s3c24xx: Fixup IO accessors for big endian
  irqchip/exynos-combiner: Fix usage of __raw IO
  irqdomain: Fix disposal of mappings for interrupt hierarchies
  irqchip/aspeed-vic: Add irq controller for Aspeed
  doc/devicetree: Add Aspeed VIC bindings
  x86/PCI/VMD: Use untracked irq handler
  genirq: Add untracked irq handler
  irqchip/mips-gic: Populate irq_domain names
  irqchip/gicv3-its: Implement two-level(indirect) device table support
  ...

1  2 
MAINTAINERS
arch/x86/kernel/apic/io_apic.c
drivers/irqchip/irq-mips-gic.c

diff --combined MAINTAINERS
index 09bb92fb80c8b4292bc7e5565e191b22854cd433,6ec72cff87b10114dcc431b7f3fe811ab98b8098..92a3f42449df26aa113f1e32fad2302aea9be929
@@@ -1669,6 -1669,7 +1669,6 @@@ F:      arch/arm/boot/dts/sh
  F:    arch/arm/configs/shmobile_defconfig
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
 -F:    drivers/sh/
  F:    drivers/soc/renesas/
  F:    include/linux/soc/renesas/
  
@@@ -1693,6 -1694,8 +1693,6 @@@ S:      Maintaine
  F:    drivers/edac/altera_edac.
  
  ARM/STI ARCHITECTURE
 -M:    Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
 -M:    Maxime Coquelin <maxime.coquelin@st.com>
  M:    Patrice Chotard <patrice.chotard@st.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kernel@stlinux.com
@@@ -1725,7 -1728,6 +1725,7 @@@ F:      drivers/ata/ahci_st.
  
  ARM/STM32 ARCHITECTURE
  M:    Maxime Coquelin <mcoquelin.stm32@gmail.com>
 +M:    Alexandre Torgue <alexandre.torgue@st.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/stm32.git
@@@ -4475,7 -4477,7 +4475,7 @@@ S:      Orpha
  F:    fs/efs/
  
  EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER
 -M:    Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
 +M:    Douglas Miller <dougmill@linux.vnet.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/ibm/ehea/
@@@ -5787,9 -5789,7 +5787,9 @@@ R:      Hartmut Knaack <knaack.h@gmx.de
  R:    Lars-Peter Clausen <lars@metafoo.de>
  R:    Peter Meerwald-Stadler <pmeerw@pmeerw.net>
  L:    linux-iio@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/
  F:    drivers/iio/
  F:    drivers/staging/iio/
  F:    include/linux/iio/
@@@ -6235,7 -6235,6 +6235,6 @@@ F:      Documentation/devicetree/bindings/in
  F:    drivers/irqchip/
  
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
- M:    Jiang Liu <jiang.liu@linux.intel.com>
  M:    Marc Zyngier <marc.zyngier@arm.com>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
@@@ -6971,7 -6970,7 +6970,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  LINUX KERNEL DUMP TEST MODULE (LKDTM)
  M:    Kees Cook <keescook@chromium.org>
  S:    Maintained
 -F:    drivers/misc/lkdtm.c
 +F:    drivers/misc/lkdtm*
  
  LLC (802.2)
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
@@@ -7024,23 -7023,15 +7023,23 @@@ Q:   http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/usb/dvb-usb-v2/lmedm04*
  
 -LOCKDEP AND LOCKSTAT
 +LOCKING PRIMITIVES
  M:    Peter Zijlstra <peterz@infradead.org>
  M:    Ingo Molnar <mingo@redhat.com>
  L:    linux-kernel@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/locking
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
  S:    Maintained
 -F:    Documentation/locking/lockdep*.txt
 -F:    Documentation/locking/lockstat.txt
 +F:    Documentation/locking/
  F:    include/linux/lockdep.h
 +F:    include/linux/spinlock*.h
 +F:    arch/*/include/asm/spinlock*.h
 +F:    include/linux/rwlock*.h
 +F:    include/linux/mutex*.h
 +F:    arch/*/include/asm/mutex*.h
 +F:    include/linux/rwsem*.h
 +F:    arch/*/include/asm/rwsem.h
 +F:    include/linux/seqlock.h
 +F:    lib/locking*.[ch]
  F:    kernel/locking/
  
  LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
@@@ -7484,7 -7475,6 +7483,7 @@@ Q:      http://patchwork.ozlabs.org/project/
  T:    git git://git.infradead.org/linux-mtd.git
  T:    git git://git.infradead.org/l2-mtd.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/mtd/
  F:    drivers/mtd/
  F:    include/linux/mtd/
  F:    include/uapi/mtd/
@@@ -10010,7 -10000,6 +10009,7 @@@ SERIAL DRIVER
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  L:    linux-serial@vger.kernel.org
  S:    Maintained
 +F:    Documentation/devicetree/bindings/serial/
  F:    drivers/tty/serial/
  
  SYNOPSYS DESIGNWARE DMAC DRIVER
@@@ -10871,7 -10860,6 +10870,7 @@@ STAGING - INDUSTRIAL I
  M:    Jonathan Cameron <jic23@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Odd Fixes
 +F:    Documentation/devicetree/bindings/staging/iio/
  F:    drivers/staging/iio/
  
  STAGING - LIRC (LINUX INFRARED REMOTE CONTROL) DRIVERS
index e58729597a7ad0c5f36bc9dca355c286f52f20b3,7c4f90dd4c2ad3ffb441faaba224212e1b10d09c..f072b95726346e68e5a195ae95cf7d503c4267f7
@@@ -981,7 -981,7 +981,7 @@@ static int alloc_irq_from_domain(struc
  
        return __irq_domain_alloc_irqs(domain, irq, 1,
                                       ioapic_alloc_attr_node(info),
-                                      info, legacy);
+                                      info, legacy, NULL);
  }
  
  /*
@@@ -1014,7 -1014,8 +1014,8 @@@ static int alloc_isa_irq_from_domain(st
                                          info->ioapic_pin))
                        return -ENOMEM;
        } else {
-               irq = __irq_domain_alloc_irqs(domain, irq, 1, node, info, true);
+               irq = __irq_domain_alloc_irqs(domain, irq, 1, node, info, true,
+                                             NULL);
                if (irq >= 0) {
                        irq_data = irq_domain_get_irq_data(domain, irq);
                        data = irq_data->chip_data;
@@@ -2567,25 -2568,29 +2568,25 @@@ static struct resource * __init ioapic_
        unsigned long n;
        struct resource *res;
        char *mem;
 -      int i, num = 0;
 +      int i;
  
 -      for_each_ioapic(i)
 -              num++;
 -      if (num == 0)
 +      if (nr_ioapics == 0)
                return NULL;
  
        n = IOAPIC_RESOURCE_NAME_SIZE + sizeof(struct resource);
 -      n *= num;
 +      n *= nr_ioapics;
  
        mem = alloc_bootmem(n);
        res = (void *)mem;
  
 -      mem += sizeof(struct resource) * num;
 +      mem += sizeof(struct resource) * nr_ioapics;
  
 -      num = 0;
        for_each_ioapic(i) {
 -              res[num].name = mem;
 -              res[num].flags = IORESOURCE_MEM | IORESOURCE_BUSY;
 +              res[i].name = mem;
 +              res[i].flags = IORESOURCE_MEM | IORESOURCE_BUSY;
                snprintf(mem, IOAPIC_RESOURCE_NAME_SIZE, "IOAPIC %u", i);
                mem += IOAPIC_RESOURCE_NAME_SIZE;
 -              ioapics[i].iomem_res = &res[num];
 -              num++;
 +              ioapics[i].iomem_res = &res[i];
        }
  
        ioapic_resources = res;
index 70ed1d0151b8b271018d8fcf7465342843f38467,f4dff5665e4eb3fc376171c4ab06471e9e6b0167..3786d0f2197227d7cfbe9fba3762a6d4b50b5703
@@@ -718,7 -718,7 +718,7 @@@ static int gic_shared_irq_domain_map(st
  
        spin_lock_irqsave(&gic_lock, flags);
        gic_map_to_pin(intr, gic_cpu_pin);
 -      gic_map_to_vpe(intr, vpe);
 +      gic_map_to_vpe(intr, mips_cm_vp_id(vpe));
        for (i = 0; i < min(gic_vpes, NR_CPUS); i++)
                clear_bit(intr, pcpu_masks[i].pcpu_mask);
        set_bit(intr, pcpu_masks[vpe].pcpu_mask);
@@@ -959,7 -959,7 +959,7 @@@ int gic_ipi_domain_match(struct irq_dom
        switch (bus_token) {
        case DOMAIN_BUS_IPI:
                is_ipi = d->bus_token == bus_token;
 -              return to_of_node(d->fwnode) == node && is_ipi;
 +              return (!node || to_of_node(d->fwnode) == node) && is_ipi;
                break;
        default:
                return 0;
@@@ -1042,12 -1042,14 +1042,14 @@@ static void __init __gic_init(unsigned 
                                               &gic_irq_domain_ops, NULL);
        if (!gic_irq_domain)
                panic("Failed to add GIC IRQ domain");
+       gic_irq_domain->name = "mips-gic-irq";
  
        gic_dev_domain = irq_domain_add_hierarchy(gic_irq_domain, 0,
                                                  GIC_NUM_LOCAL_INTRS + gic_shared_intrs,
                                                  node, &gic_dev_domain_ops, NULL);
        if (!gic_dev_domain)
                panic("Failed to add GIC DEV domain");
+       gic_dev_domain->name = "mips-gic-dev";
  
        gic_ipi_domain = irq_domain_add_hierarchy(gic_irq_domain,
                                                  IRQ_DOMAIN_FLAG_IPI_PER_CPU,
        if (!gic_ipi_domain)
                panic("Failed to add GIC IPI domain");
  
+       gic_ipi_domain->name = "mips-gic-ipi";
        gic_ipi_domain->bus_token = DOMAIN_BUS_IPI;
  
        if (node &&