<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/acpi/bus.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-07-20T14:22:33Z</updated>
<entry>
<title>ACPI: bus: Call kobject_put() in acpi_init() error path</title>
<updated>2021-07-20T14:22:33Z</updated>
<author>
<name>Hanjun Guo</name>
</author>
<published>2021-06-02T09:36:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52b5576df51a2e00298d23889064c3c04fee5744'/>
<id>urn:sha1:52b5576df51a2e00298d23889064c3c04fee5744</id>
<content type='text'>
[ Upstream commit 4ac7a817f1992103d4e68e9837304f860b5e7300 ]

Although the system will not be in a good condition or it will not
boot if acpi_bus_init() fails, it is still necessary to put the
kobject in the error path before returning to avoid leaking memory.

Signed-off-by: Hanjun Guo &lt;guohanjun@huawei.com&gt;
[ rjw: Subject and changelog edits ]
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()</title>
<updated>2019-12-21T09:35:28Z</updated>
<author>
<name>Vamshi K Sthambamkadi</name>
</author>
<published>2019-11-28T10:28:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=45e64c927533394ff9427a93587998859c0fd77a'/>
<id>urn:sha1:45e64c927533394ff9427a93587998859c0fd77a</id>
<content type='text'>
commit 627ead724eff33673597216f5020b72118827de4 upstream.

kmemleak reported backtrace:
    [&lt;bbee0454&gt;] kmem_cache_alloc_trace+0x128/0x260
    [&lt;6677f215&gt;] i2c_acpi_install_space_handler+0x4b/0xe0
    [&lt;1180f4fc&gt;] i2c_register_adapter+0x186/0x400
    [&lt;6083baf7&gt;] i2c_add_adapter+0x4e/0x70
    [&lt;a3ddf966&gt;] intel_gmbus_setup+0x1a2/0x2c0 [i915]
    [&lt;84cb69ae&gt;] i915_driver_probe+0x8d8/0x13a0 [i915]
    [&lt;81911d4b&gt;] i915_pci_probe+0x48/0x160 [i915]
    [&lt;4b159af1&gt;] pci_device_probe+0xdc/0x160
    [&lt;b3c64704&gt;] really_probe+0x1ee/0x450
    [&lt;bc029f5a&gt;] driver_probe_device+0x142/0x1b0
    [&lt;d8829d20&gt;] device_driver_attach+0x49/0x50
    [&lt;de71f045&gt;] __driver_attach+0xc9/0x150
    [&lt;df33ac83&gt;] bus_for_each_dev+0x56/0xa0
    [&lt;80089bba&gt;] driver_attach+0x19/0x20
    [&lt;cc73f583&gt;] bus_add_driver+0x177/0x220
    [&lt;7b29d8c7&gt;] driver_register+0x56/0xf0

In i2c_acpi_remove_space_handler(), a leak occurs whenever the
"data" parameter is initialized to 0 before being passed to
acpi_bus_get_private_data().

This is because the NULL pointer check in acpi_bus_get_private_data()
(condition-&gt;if(!*data)) returns EINVAL and, in consequence, memory is
never freed in i2c_acpi_remove_space_handler().

Fix the NULL pointer check in acpi_bus_get_private_data() to follow
the analogous check in acpi_get_data_full().

Signed-off-by: Vamshi K Sthambamkadi &lt;vamshi.k.sthambamkadi@gmail.com&gt;
[ rjw: Subject &amp; changelog ]
Cc: All applicable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ACPI / processor: Request native thermal interrupt handling via _OSC</title>
<updated>2016-05-11T09:21:26Z</updated>
<author>
<name>Srinivas Pandruvada</name>
</author>
<published>2016-03-24T04:07:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dfa11d586248a21ce2c7fae02c02964c3a4a8379'/>
<id>urn:sha1:dfa11d586248a21ce2c7fae02c02964c3a4a8379</id>
<content type='text'>
commit a21211672c9a1d730a39aa65d4a5b3414700adfb upstream.

There are several reports of freeze on enabling HWP (Hardware PStates)
feature on Skylake-based systems by the Intel P-states driver. The root
cause is identified as the HWP interrupts causing BIOS code to freeze.

HWP interrupts use the thermal LVT which can be handled by Linux
natively, but on the affected Skylake-based systems SMM will respond
to it by default.  This is a problem for several reasons:
 - On the affected systems the SMM thermal LVT handler is broken (it
   will crash when invoked) and a BIOS update is necessary to fix it.
 - With thermal interrupt handled in SMM we lose all of the reporting
   features of the arch/x86/kernel/cpu/mcheck/therm_throt driver.
 - Some thermal drivers like x86-package-temp depend on the thermal
   threshold interrupts signaled via the thermal LVT.
 - The HWP interrupts are useful for debugging and tuning
   performance (if the kernel can handle them).
The native handling of thermal interrupts needs to be enabled
because of that.

This requires some way to tell SMM that the OS can handle thermal
interrupts.  That can be done by using _OSC/_PDC in processor
scope very early during ACPI initialization.

The meaning of _OSC/_PDC bit 12 in processor scope is whether or
not the OS supports native handling of interrupts for Collaborative
Processor Performance Control (CPPC) notifications.  Since on
HWP-capable systems CPPC is a firmware interface to HWP, setting
this bit effectively tells the firmware that the OS will handle
thermal interrupts natively going forward.

For details on _OSC/_PDC refer to:
http://www.intel.com/content/www/us/en/standards/processor-vendor-specific-acpi-specification.html

To implement the _OSC/_PDC handshake as described, introduce a new
function, acpi_early_processor_osc(), that walks the ACPI
namespace looking for ACPI processor objects and invokes _OSC for
them with bit 12 in the capabilities buffer set and terminates the
namespace walk on the first success.

Also modify intel_thermal_interrupt() to clear HWP status bits in
the HWP_STATUS MSR to acknowledge HWP interrupts (which prevents
them from firing continuously).

Signed-off-by: Srinivas Pandruvada &lt;srinivas.pandruvada@linux.intel.com&gt;
[ rjw: Subject &amp; changelog, function rename ]
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()</title>
<updated>2015-09-15T01:05:45Z</updated>
<author>
<name>Sudeep Holla</name>
</author>
<published>2015-09-14T15:01:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bcb2b0b2bae2de744223c68521cd51c57feb486c'/>
<id>urn:sha1:bcb2b0b2bae2de744223c68521cd51c57feb486c</id>
<content type='text'>
This commit removes all CONFIG_.*{,_MODULE} in ACPI code, replacing it
with IS_ENABLED().

Signed-off-by: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'acpi-pm'</title>
<updated>2015-09-01T01:38:43Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2015-09-01T01:38:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef5f5de069bd9081a7ddf6998269b58fc65e27ef'/>
<id>urn:sha1:ef5f5de069bd9081a7ddf6998269b58fc65e27ef</id>
<content type='text'>
* acpi-pm:
  ACPI / bus: Move duplicate code to a separate new function
  mfd: Add support for Intel Sunrisepoint LPSS devices
  dmaengine: add a driver for Intel integrated DMA 64-bit
  mfd: make mfd_remove_devices() iterate in reverse order
  driver core: implement device_for_each_child_reverse()
  klist: implement klist_prev()
  Driver core: wakeup the parent device before trying probe
  ACPI / PM: Attach ACPI power domain only once
  PM / QoS: Make it possible to expose device latency tolerance to userspace
  ACPI / PM: Update the copyright notice and description of power.c
</content>
</entry>
<entry>
<title>Merge branches 'acpi-scan', 'acpi-processor' and 'acpi-assorted'</title>
<updated>2015-09-01T01:38:22Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2015-09-01T01:38:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73990fc810bf84c5338d9596f8af8d70fe90ac72'/>
<id>urn:sha1:73990fc810bf84c5338d9596f8af8d70fe90ac72</id>
<content type='text'>
* acpi-scan:
  ACPI / bus: Move ACPI bus type registration
  ACPI / scan: Move bus operations and notification routines to bus.c
  ACPI / scan: Move device matching code to bus.c
  ACPI / scan: Move sysfs-related device code to a separate file

* acpi-processor:
  PCC: Disable compilation by default
  ACPI: Decouple ACPI idle and ACPI processor drivers
  ACPI: Split out ACPI PSS from ACPI Processor driver
  PCC: Initialize PCC Mailbox earlier at boot
  ACPI / processor: remove leftover __refdata annotations

* acpi-assorted:
  ACPI: fix acpi_debugfs_init prototype
  ACPI: Remove FSF mailing addresses
</content>
</entry>
<entry>
<title>ACPI / bus: Move duplicate code to a separate new function</title>
<updated>2015-08-06T01:11:47Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2015-08-01T00:39:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e91a398c31cef2d51786642e372c503cd43fba90'/>
<id>urn:sha1:e91a398c31cef2d51786642e372c503cd43fba90</id>
<content type='text'>
After merging commit 712e960f0ee9 (ACPI / PM: Attach ACPI power
domain only once) with commit 1dcc3d3362b0 (ACPI / bus: Move ACPI
bus type registration) there is some duplicate code in
acpi_device_is_first_physical_node() and acpi_companion_match()
that can be moved to a separate routine and called from both
places.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Reviewed-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Hanjun Guo &lt;hanjun.guo@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'acpi-scan' into acpi-pm</title>
<updated>2015-07-29T21:57:51Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2015-07-29T21:57:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3431e490b50356b56084305a2e93b3a980802b22'/>
<id>urn:sha1:3431e490b50356b56084305a2e93b3a980802b22</id>
<content type='text'>
Conflicts:
	drivers/acpi/scan.c

The conflict is resolved by moving the just introduced
acpi_device_is_first_physical_node() to bus.c and using
the existing acpi_companion_match() from there.

There will be an additional commit to combine the two.
</content>
</entry>
<entry>
<title>ACPI / bus: Move ACPI bus type registration</title>
<updated>2015-07-17T20:54:09Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2015-07-17T20:54:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1dcc3d3362b0c97e48290f7786be85b4cec2a147'/>
<id>urn:sha1:1dcc3d3362b0c97e48290f7786be85b4cec2a147</id>
<content type='text'>
Move the registration of the ACPI bus type to acpi_bus_init() and
avoid using ACPI going forward if it fails (too many things depend on
the presence of the ACPI bus type).

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI / scan: Move bus operations and notification routines to bus.c</title>
<updated>2015-07-17T20:54:01Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2015-07-17T20:54:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5894b0c46e49b5ecc25f22b2d1b8232aab00ce97'/>
<id>urn:sha1:5894b0c46e49b5ecc25f22b2d1b8232aab00ce97</id>
<content type='text'>
To reduce the size of scan.c and improve the readability of it, move
code related to device notification, the definitions of the ACPI bus
operations and the driver management code to drivers/acpi/bus.c.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
</feed>
