All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Jiang Liu <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, yinghai@kernel.org,
	gregkh@linuxfoundation.org, bhelgaas@google.com, pavel@ucw.cz,
	bp@alien8.de, mingo@kernel.org, grant.likely@linaro.org,
	tony.luck@intel.com, hpa@zytor.com, rjw@rjwysocki.net,
	linux-kernel@vger.kernel.org, prarit@redhat.com,
	jiang.liu@linux.intel.com, konrad.wilk@oracle.com,
	rdunlap@infradead.org, joro@8bytes.org, len.brown@intel.com,
	benh@kernel.crashing.org
Subject: [tip:x86/apic] x86, irq: Introduce helper to check whether an IOAPIC has been registered
Date: Fri, 19 Dec 2014 06:05:28 -0800	[thread overview]
Message-ID: <tip-e89900c9ad75a1b80e1f1f46ce9c9bb0e7ea1d96@git.kernel.org> (raw)
In-Reply-To: <1414387308-27148-18-git-send-email-jiang.liu@linux.intel.com>

Commit-ID:  e89900c9ad75a1b80e1f1f46ce9c9bb0e7ea1d96
Gitweb:     http://git.kernel.org/tip/e89900c9ad75a1b80e1f1f46ce9c9bb0e7ea1d96
Author:     Jiang Liu <jiang.liu@linux.intel.com>
AuthorDate: Mon, 27 Oct 2014 13:21:47 +0800
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 16 Dec 2014 14:08:15 +0100

x86, irq: Introduce helper to check whether an IOAPIC has been registered

Introduce acpi_ioapic_registered() to check whether an IOAPIC has already
been registered, it will be used when enabling IOAPIC hotplug.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Len Brown <len.brown@intel.com>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Link: http://lkml.kernel.org/r/1414387308-27148-18-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 arch/x86/include/asm/io_apic.h |  1 +
 arch/x86/kernel/acpi/boot.c    | 22 ++++++++++++++++++++++
 arch/x86/kernel/apic/io_apic.c | 11 +++++++++++
 include/linux/acpi.h           |  1 +
 4 files changed, 35 insertions(+)

diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index ce63cf3..0db2b70 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -191,6 +191,7 @@ extern void mp_unmap_irq(int irq);
 extern int mp_register_ioapic(int id, u32 address, u32 gsi_base,
 			      struct ioapic_domain_cfg *cfg);
 extern int mp_unregister_ioapic(u32 gsi_base);
+extern int mp_ioapic_registered(u32 gsi_base);
 extern int mp_irqdomain_map(struct irq_domain *domain, unsigned int virq,
 			    irq_hw_number_t hwirq);
 extern void mp_irqdomain_unmap(struct irq_domain *domain, unsigned int virq);
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 5427d9b..ddddaed 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -826,6 +826,28 @@ int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base)
 }
 EXPORT_SYMBOL(acpi_unregister_ioapic);
 
+/**
+ * acpi_ioapic_registered - Check whether IOAPIC assoicatied with @gsi_base
+ *			    has been registered
+ * @handle:	ACPI handle of the IOAPIC deivce
+ * @gsi_base:	GSI base associated with the IOAPIC
+ *
+ * Assume caller holds some type of lock to serialize acpi_ioapic_registered()
+ * with acpi_register_ioapic()/acpi_unregister_ioapic().
+ */
+int acpi_ioapic_registered(acpi_handle handle, u32 gsi_base)
+{
+	int ret = 0;
+
+#ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
+	mutex_lock(&acpi_ioapic_lock);
+	ret  = mp_ioapic_registered(gsi_base);
+	mutex_unlock(&acpi_ioapic_lock);
+#endif
+
+	return ret;
+}
+
 static int __init acpi_parse_sbf(struct acpi_table_header *table)
 {
 	struct acpi_table_boot *sb;
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 06a0a6c..1cedf41 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -4026,6 +4026,17 @@ int mp_unregister_ioapic(u32 gsi_base)
 	return 0;
 }
 
+int mp_ioapic_registered(u32 gsi_base)
+{
+	int ioapic;
+
+	for_each_ioapic(ioapic)
+		if (ioapics[ioapic].gsi_config.gsi_base == gsi_base)
+			return 1;
+
+	return 0;
+}
+
 int mp_irqdomain_map(struct irq_domain *domain, unsigned int virq,
 		     irq_hw_number_t hwirq)
 {
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 407a12f..a81dd43 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -148,6 +148,7 @@ int acpi_unmap_lsapic(int cpu);
 
 int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
 int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
+int acpi_ioapic_registered(acpi_handle handle, u32 gsi_base);
 void acpi_irq_stats_init(void);
 extern u32 acpi_irq_handled;
 extern u32 acpi_irq_not_handled;

  parent reply	other threads:[~2014-12-19 14:06 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-27  5:21 [Patch v7 00/18] Enable support of IOAPIC hotplug on x86 platforms Jiang Liu
2014-10-27  5:21 ` [Patch v7 01/18] ACPI, irq: fix regression casued by 6b9fb7082409 Jiang Liu
2014-10-28 17:44   ` Pavel Machek
2014-10-28 18:13   ` Bjorn Helgaas
2014-10-28 18:45     ` Thomas Gleixner
2014-10-27  5:21 ` [Patch v7 02/18] x86, intel-mid: Create IRQs for APB timers and RTC timers Jiang Liu
2014-10-28 18:54   ` [tip:x86/urgent] " tip-bot for Jiang Liu
2014-10-29  9:10   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 03/18] ACPI, irq, x86: Return IRQ instead of GSI in mp_register_gsi() Jiang Liu
2014-10-28 18:54   ` [tip:x86/urgent] " tip-bot for Jiang Liu
2014-10-29  9:10   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 04/18] x86, PCI, ACPI: Kill private function resource_to_addr() in arch/x86/pci/acpi.c Jiang Liu
2014-11-03 10:57   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-11-03 14:50     ` Borislav Petkov
2014-12-10  4:08     ` Yinghai Lu
2014-12-10 13:36       ` Jiang Liu
2014-12-10 20:15       ` Thomas Gleixner
2014-12-11  0:31         ` Yinghai Lu
2014-12-11  0:35           ` Borislav Petkov
2014-12-11  1:57             ` Yinghai Lu
2014-12-11  4:13               ` Mike Galbraith
2014-12-11  7:42               ` Richard Cochran
2014-12-11 16:36           ` Thomas Gleixner
2014-12-11 16:57             ` Yinghai Lu
2014-12-11 16:37           ` Bjorn Helgaas
2014-10-27  5:21 ` [Patch v7 05/18] ACPI: Correct return value of acpi_dev_resource_address_space() Jiang Liu
2014-10-27 22:30   ` Rafael J. Wysocki
2014-10-27 22:49   ` Bjorn Helgaas
2014-10-27 23:11     ` Rafael J. Wysocki
2014-10-28  1:13       ` Bjorn Helgaas
2014-11-03 10:57   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:00   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 06/18] ACPI: Fix minor syntax issues in processor_core.c Jiang Liu
2014-11-03 10:58   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:02   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 07/18] ACPI: Add interfaces to parse IOAPIC ID for IOAPIC hotplug Jiang Liu
2014-11-03 10:58   ` [tip:x86/apic] " tip-bot for Yinghai Lu
2014-10-27  5:21 ` [Patch v7 08/18] PCI: Remove PCI ioapic driver Jiang Liu
2014-11-03 10:58   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:02   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 09/18] x86, irq: Split out alloc_ioapic_save_registers() Jiang Liu
2014-11-03 10:58   ` [tip:x86/apic] " tip-bot for Yinghai Lu
2014-12-19 14:03   ` tip-bot for Yinghai Lu
2014-10-27  5:21 ` [Patch v7 10/18] x86, irq: Prefer assigned ID in APIC ID register for x86_64 Jiang Liu
2014-11-03 10:59   ` [tip:x86/apic] " tip-bot for Yinghai Lu
2014-12-19 14:03   ` tip-bot for Yinghai Lu
2014-10-27  5:21 ` [Patch v7 11/18] x86, irq: Remove __init marker for functions will be used by IOAPIC hotplug Jiang Liu
2014-11-03 10:59   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:03   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 12/18] x86, irq: Keep balance of IOAPIC pin reference count Jiang Liu
2014-11-03 10:59   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:04   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 13/18] x86, irq: Refine mp_register_ioapic() to prepare for IOAPIC hotplug Jiang Liu
2014-11-03 11:00   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:04   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 14/18] x86, irq, ACPI: Introduce a rwsem to protect IOAPIC operations from hotplug Jiang Liu
2014-11-01 18:59   ` Thomas Gleixner
2014-11-02  5:24     ` Jiang Liu
2014-10-27  5:21 ` [Patch v7 15/18] x86, irq, ACPI: Implement interface to support ACPI based IOAPIC hot-addition Jiang Liu
2014-11-03 11:00   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:04   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 16/18] x86, irq, ACPI: Implement interfaces to support ACPI based IOAPIC hot-removal Jiang Liu
2014-11-03 11:00   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:05   ` tip-bot for Jiang Liu
2014-10-27  5:21 ` [Patch v7 17/18] x86, irq: Introduce helper to check whether an IOAPIC has been registered Jiang Liu
2014-10-28 17:47   ` Pavel Machek
2014-11-03 11:01   ` [tip:x86/apic] " tip-bot for Jiang Liu
2014-12-19 14:05   ` tip-bot for Jiang Liu [this message]
2014-10-27  5:21 ` [Patch v7 18/18] x86, irq, ACPI: Implement ACPI driver to support IOAPIC hotplug Jiang Liu
2014-11-03 11:01   ` [tip:x86/apic] " tip-bot for Jiang Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-e89900c9ad75a1b80e1f1f46ce9c9bb0e7ea1d96@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=bp@alien8.de \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=jiang.liu@linux.intel.com \
    --cc=joro@8bytes.org \
    --cc=konrad.wilk@oracle.com \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=pavel@ucw.cz \
    --cc=prarit@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.