From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756753AbaEGPnz (ORCPT ); Wed, 7 May 2014 11:43:55 -0400 Received: from www.linutronix.de ([62.245.132.108]:48485 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752076AbaEGPnu (ORCPT ); Wed, 7 May 2014 11:43:50 -0400 Message-Id: <20140507153622.703412101@linutronix.de> User-Agent: quilt/0.60-1 Date: Wed, 07 May 2014 15:44:03 -0000 From: Thomas Gleixner To: LKML Cc: Ingo Molnar , Peter Anvin , Tony Luck , Peter Zijlstra Subject: [patch 00/32] genirq: Another round of tree wide cleanups X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This cleanup series addresses a few histerical leftovers: 1) irq_reserve_irq() The remaining callsites are pointless except s390, but we have a better way to protect the lower interrupt space there. It's gone for good and it will never come back. Use irq domains, if you want hot pluggable irq chips. 2) create/destroy_irq and their variants Designed in different circles of hell we have an incompatible zoo of those. Three different implementations with different semantics vs. the return values. Two use cases which are just reusing the global namespace. And they come along with four different flavours of dynamic irq allocation. I created a core implementation for that and put it under GENERIC_IRQ_LEGACY_ALLOC_HWIRQ to make clear that this is not for new code. That implementation is used by x86 and tile. I gave up on converting ia64 over, so I moved the create/destroy_irq prototypes into ia64 headers and provided a wrapper for the shared dmar driver. The core implementation is a very basic allocator and that's deliberately so. I don't want more users and every more complex than that wants to use irq domains. 3) dynamic_irq_init/cleanup Another leftover from the past. By moving tile and iop13xx to sparse irq there is only ia64 left. I simplified the code and made this available only under a legacy config option to avoid that more people think they need this. Full diffstat below. Thanks, tglx --- arch/arm/Kconfig | 1 arch/arm/mach-iop13xx/include/mach/irqs.h | 2 arch/arm/mach-iop13xx/include/mach/time.h | 3 arch/arm/mach-iop13xx/iq81340mc.c | 1 arch/arm/mach-iop13xx/iq81340sc.c | 1 arch/arm/mach-iop13xx/msi.c | 51 ++--------- arch/arm/mach-iop13xx/setup.c | 1 arch/arm/mach-iop13xx/tpmi.c | 1 arch/ia64/Kconfig | 1 arch/ia64/include/asm/hw_irq.h | 1 arch/ia64/include/asm/irq.h | 3 arch/ia64/include/asm/irq_remapping.h | 2 arch/ia64/kernel/iosapic.c | 2 arch/ia64/kernel/irq_ia64.c | 15 --- arch/mips/pci/msi-xlp.c | 10 -- arch/mips/pci/pci-xlr.c | 10 -- arch/s390/kernel/irq.c | 5 - arch/s390/pci/pci.c | 6 - arch/tile/Kconfig | 2 arch/tile/include/asm/irq.h | 6 - arch/tile/kernel/irq.c | 40 --------- arch/tile/kernel/pci_gx.c | 17 +-- arch/x86/Kconfig | 1 arch/x86/include/asm/io_apic.h | 2 arch/x86/include/asm/irq_remapping.h | 3 arch/x86/kernel/apic/io_apic.c | 130 +++++------------------------- arch/x86/kernel/hpet.c | 5 - arch/x86/platform/uv/uv_irq.c | 10 -- drivers/iommu/dmar.c | 8 - drivers/iommu/irq_remapping.c | 12 +- drivers/net/ethernet/tile/tilegx.c | 6 - drivers/pci/htirq.c | 13 --- drivers/sh/intc/core.c | 6 - drivers/tty/hvc/hvc_tile.c | 8 - drivers/tty/serial/tilegx.c | 8 - drivers/usb/host/ehci-tilegx.c | 8 - drivers/usb/host/ohci-tilegx.c | 8 - drivers/xen/events/events_base.c | 17 --- include/linux/irq.h | 38 +++----- kernel/irq/Kconfig | 9 ++ kernel/irq/chip.c | 5 - kernel/irq/internals.h | 6 + kernel/irq/irqdesc.c | 95 ++++++++++++++------- 43 files changed, 216 insertions(+), 363 deletions(-)