• Rafael J. Wysocki's avatar
    ACPI / PNP: Fix acpi_pnp_match() · b6328a07
    Rafael J. Wysocki authored
    The acpi_pnp_match() function is used for finding the ACPI device
    object that should be associated with the given PNP device.
    Unfortunately, the check used by that function is not strict enough
    and may cause success to be returned for a wrong ACPI device object.
    
    To fix that, use the observation that the pointer to the ACPI
    device object in question is already stored in the data field
    in struct pnp_dev, so acpi_pnp_match() can simply use that
    field to do its job.
    
    This problem was uncovered in 3.14 by commit 202317a5 (ACPI / scan:
    Add acpi_device objects for all device nodes in the namespace).
    
    Fixes: 202317a5 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace)
    Reported-and-tested-by: default avatarVinson Lee <vlee@twopensource.com>
    Cc: 3.14+ <stable@vger.kernel.org> # 3.14+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    b6328a07
core.c 9.04 KB