PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 26 Jun 2020 17:42:34 +0000 (19:42 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 09:05:29 +0000 (11:05 +0200)
commitc59ea9bde42ede641006940a339eabe6669cc1be
treead9632facd244c1a3629fd41b77c97f9b5836c5b
parent5c4d9eefd314e763dcb2a499797176c17ad6ab69
PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()

commit dae68d7fd4930315389117e9da35b763f12238f9 upstream.

If context is not NULL in acpiphp_grab_context(), but the
is_going_away flag is set for the device's parent, the reference
counter of the context needs to be decremented before returning
NULL or the context will never be freed, so make that happen.

Fixes: edf5bf34d408 ("ACPI / dock: Use callback pointers from devices' ACPI hotplug contexts")
Reported-by: Vasily Averin <vvs@virtuozzo.com>
Cc: 3.15+ <stable@vger.kernel.org> # 3.15+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/hotplug/acpiphp_glue.c