<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/acpi/ioapic.c, branch standardize-docs</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=standardize-docs</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=standardize-docs'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2017-06-22T00:18:20+00:00</updated>
<entry>
<title>ACPI: fix whitespace in pr_fmt() to align log entries</title>
<updated>2017-06-22T00:18:20+00:00</updated>
<author>
<name>Vincent Legoll</name>
<email>vincent.legoll@gmail.com</email>
</author>
<published>2017-05-20T18:38:13+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=b6aeab44ed387e5264d2969bc7deee993b29a515'/>
<id>urn:sha1:b6aeab44ed387e5264d2969bc7deee993b29a515</id>
<content type='text'>
See this dmesg extract before the patch:

[    0.679466] ACPI: Dynamic OEM Table Load:
[    0.679470] ACPI: SSDT 0xFFFF910F6B497E00 00018A (v02 PmRef  ApCst    00003000 INTL 20160422)
[    0.679579] ACPI: Executed 1 blocks of module-level executable AML code
[    0.681477] ACPI : EC: EC started
[    0.681478] ACPI : EC: interrupt blocked
[    0.684798] ACPI: Interpreter enabled
[    0.684835] ACPI: (supports S0 S3 S4 S5)

Signed-off-by: Vincent Legoll &lt;vincent.legoll@gmail.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI: ioapic: Clear on-stack resource before using it</title>
<updated>2017-03-28T21:31:45+00:00</updated>
<author>
<name>Joerg Roedel</name>
<email>jroedel@suse.de</email>
</author>
<published>2017-03-22T17:33:23+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e3d5092b6756b9e0b08f94bbeafcc7afe19f0996'/>
<id>urn:sha1:e3d5092b6756b9e0b08f94bbeafcc7afe19f0996</id>
<content type='text'>
The on-stack resource-window 'win' in setup_res() is not
properly initialized. This causes the pointers in the
embedded 'struct resource' to contain stale addresses.

These pointers (in my case the -&gt;child pointer) later get
propagated to the global iomem_resources list, causing a #GP
exception when the list is traversed in
iomem_map_sanity_check().

Fixes: c183619b63ec (x86/irq, ACPI: Implement ACPI driver to support IOAPIC hotplug)
Signed-off-by: Joerg Roedel &lt;jroedel@suse.de&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>x86/ioapic: Split IOAPIC hot-removal into two steps</title>
<updated>2017-03-01T09:51:41+00:00</updated>
<author>
<name>Rui Wang</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2017-02-28T13:34:29+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f2ae5da726172fcf82f7be801489dd585f6a38eb'/>
<id>urn:sha1:f2ae5da726172fcf82f7be801489dd585f6a38eb</id>
<content type='text'>
The hot removal of IOAPIC is handling PCI and ACPI removal in one go. That
only works when the PCI drivers released the interrupt resources, but
breaks when a IOAPIC interrupt is still associated to a PCI device.

The new pcibios_release_device() callback allows to solve that problem by
splitting the removal into two steps:

1) PCI removal:

   Release all PCI resources including eventually not yet released IOAPIC
   interrupts via the new pcibios_release_device() callback.

2) ACPI removal:

   After release of all PCI resources the ACPI resources can be released
   without issue.

[ tglx: Rewrote changelog ]

Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Cc: tony.luck@intel.com
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: linux-acpi@vger.kernel.org
Cc: fengguang.wu@intel.com
Cc: helgaas@kernel.org
Cc: kbuild-all@01.org
Cc: bhelgaas@google.com
Link: http://lkml.kernel.org/r/1488288869-31290-3-git-send-email-rui.y.wang@intel.com
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</content>
</entry>
<entry>
<title>x86/ioapic: Fix IOAPIC failing to request resource</title>
<updated>2016-08-18T09:45:19+00:00</updated>
<author>
<name>Rui Wang</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2016-08-17T08:00:37+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=624cad9d2907a0788b56e3ca664c5d7d02645ed4'/>
<id>urn:sha1:624cad9d2907a0788b56e3ca664c5d7d02645ed4</id>
<content type='text'>
handle_ioapic_add() uses request_resource() to request ACPI "_CRS"
resources. This can fail with the following error message:

  [  247.325693] ACPI: \_SB_.IIO1.AID1: failed to insert resource

This happens when there are multiple IOAPICs and DSDT groups their
"_CRS" resources as the children of a parent resource, as seen from
/proc/iomem:

  fec00000-fecfffff : PNP0003:00
    fec00000-fec003ff : IOAPIC 0
    fec01000-fec013ff : IOAPIC 1
    fec40000-fec403ff : IOAPIC 2

In this case request_resource() fails because there's a conflicting
resource which is the parent (fec0000-fecfffff). Fix it by using
insert_resource() which can request resources by taking the conflicting
resource as the parent.

Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: bhelgaas@google.com
Cc: helgaas@kernel.org
Cc: linux-acpi@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: tony.luck@intel.com
Link: http://lkml.kernel.org/r/1471420837-31003-6-git-send-email-rui.y.wang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>x86/ioapic: Fix lost IOAPIC resource after hot-removal and hotadd</title>
<updated>2016-08-18T09:45:18+00:00</updated>
<author>
<name>Rui Wang</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2016-08-17T08:00:36+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=162b83bd5f1d7124e21da78bcf2685b9824d9ef0'/>
<id>urn:sha1:162b83bd5f1d7124e21da78bcf2685b9824d9ef0</id>
<content type='text'>
IOAPIC resource at 0xfecxxxxx gets lost from /proc/iomem after
hot-removing and then hot-adding the IOAPIC device.

After system boot, in /proc/iomem:

 fec00000-fecfffff : PNP0003:00
   fec00000-fec003ff : IOAPIC 0
   fec01000-fec013ff : IOAPIC 1
   fec40000-fec403ff : IOAPIC 2
   fec80000-fec803ff : IOAPIC 3
   fecc0000-fecc03ff : IOAPIC 4

Then hot-remove IOAPIC 2 and hot-add it again:

 fec00000-fecfffff : PNP0003:00
   fec00000-fec003ff : IOAPIC 0
   fec01000-fec013ff : IOAPIC 1
   fec80000-fec803ff : IOAPIC 3
   fecc0000-fecc03ff : IOAPIC 4

The range at 0xfec40000 is lost from /proc/iomem - which is a bug.

This bug happens because handle_ioapic_add() requests resources from
either PCI config BAR or ACPI "_CRS", not both. But Intel platforms
map the IOxAPIC registers both at the PCI config BAR (called MBAR, dynamic),
and at the ACPI "_CRS" (called ABAR, static). The 0xfecX_YZ00 to 0xfecX_YZFF
range appears in "_CRS" of each IOAPIC device.

Both ranges should be claimed from /proc/iomem for exclusive use.

Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: bhelgaas@google.com
Cc: helgaas@kernel.org
Cc: linux-acpi@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: tony.luck@intel.com
Link: http://lkml.kernel.org/r/1471420837-31003-5-git-send-email-rui.y.wang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>x86/ioapic: Fix setup_res() failing to get resource</title>
<updated>2016-08-18T09:45:18+00:00</updated>
<author>
<name>Rui Wang</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2016-08-17T08:00:35+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6ab7eba5db93c11d61f6f7fbe21edbc875b26c1a'/>
<id>urn:sha1:6ab7eba5db93c11d61f6f7fbe21edbc875b26c1a</id>
<content type='text'>
acpi_dev_filter_resource_type() returns 0 on success, and 1 on failure.
A return value of zero means there's a matching resource, so we should
continue within setup_res() to get the resource.

Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: bhelgaas@google.com
Cc: helgaas@kernel.org
Cc: linux-acpi@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: tony.luck@intel.com
Link: http://lkml.kernel.org/r/1471420837-31003-4-git-send-email-rui.y.wang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>x86/ioapic: Change prototype of acpi_ioapic_add()</title>
<updated>2016-08-18T09:45:18+00:00</updated>
<author>
<name>Rui Wang</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2016-08-17T08:00:33+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=fe7bd58f5d25d5d655b1da4a084cc4ef6f085fee'/>
<id>urn:sha1:fe7bd58f5d25d5d655b1da4a084cc4ef6f085fee</id>
<content type='text'>
Change the argument of acpi_ioapic_add() to a generic ACPI handle, and
move its prototype from drivers/acpi/internal.h to include/linux/acpi.h
so that it can be called from outside the pci_root driver.

Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: bhelgaas@google.com
Cc: helgaas@kernel.org
Cc: linux-acpi@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: tony.luck@intel.com
Link: http://lkml.kernel.org/r/1471420837-31003-2-git-send-email-rui.y.wang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>x86/irq, ACPI: Implement ACPI driver to support IOAPIC hotplug</title>
<updated>2015-02-05T14:09:26+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2015-02-05T05:44:49+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=c183619b63ec934110e3a173a34b414e26869f96'/>
<id>urn:sha1:c183619b63ec934110e3a173a34b414e26869f96</id>
<content type='text'>
Enable support of IOAPIC hotplug by:
1) reintroducing ACPI based IOAPIC driver
2) enhance pci_root driver to hook hotplug events

The ACPI IOAPIC driver is always enabled if all of ACPI, PCI and IOAPIC
are enabled.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Cc: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: Joerg Roedel &lt;joro@8bytes.org&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Rafael J. Wysocki &lt;rjw@rjwysocki.net&gt;
Cc: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Cc: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Len Brown &lt;lenb@kernel.org&gt;
Link: http://lkml.kernel.org/r/1414387308-27148-19-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
</feed>
