linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	alan@lxorguk.ukuu.org.uk,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: [ 21/28] ACPI / PNP: Do not crash due to stale pointer use during system resume
Date: Fri, 14 Dec 2012 14:26:38 -0800	[thread overview]
Message-ID: <20121214222255.366390940@linuxfoundation.org> (raw)
In-Reply-To: <20121214222250.501309822@linuxfoundation.org>

3.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>

commit a6b5e88c0e42093b9057856f35770966c8c591e3 upstream.

During resume from system suspend the 'data' field of
struct pnp_dev in pnpacpi_set_resources() may be a stale pointer,
due to removal of the associated ACPI device node object in the
previous suspend-resume cycle.  This happens, for example, if a
dockable machine is booted in the docking station and then suspended
and resumed and suspended again.  If that happens,
pnpacpi_build_resource_template() called from pnpacpi_set_resources()
attempts to use that pointer and crashes.

However, pnpacpi_set_resources() actually checks the device's ACPI
handle, attempts to find the ACPI device node object attached to it
and returns an error code if that fails, so in fact it knows what the
correct value of dev->data should be.  Use this observation to update
dev->data with the correct value if necessary and dump a call trace
if that's the case (once).

We still need to fix the root cause of this issue, but preventing
systems from crashing because of it is an improvement too.

Reported-and-tested-by: Zdenek Kabelac <zdenek.kabelac@gmail.com>
References: https://bugzilla.kernel.org/show_bug.cgi?id=51071
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/pnp/pnpacpi/core.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -95,6 +95,9 @@ static int pnpacpi_set_resources(struct
 		return -ENODEV;
 	}
 
+	if (WARN_ON_ONCE(acpi_dev != dev->data))
+		dev->data = acpi_dev;
+
 	ret = pnpacpi_build_resource_template(dev, &buffer);
 	if (ret)
 		return ret;



  parent reply	other threads:[~2012-12-14 22:30 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-14 22:26 [ 00/28] 3.4.24-stable review Greg Kroah-Hartman
2012-12-14 22:26 ` [ 01/28] tmpfs: fix shared mempolicy leak Greg Kroah-Hartman
2012-12-14 22:26 ` [ 02/28] Revert misapplied "mmc: sh-mmcif: avoid oops on spurious interrupts" Greg Kroah-Hartman
2012-12-14 22:26 ` [ 03/28] mmc: sh-mmcif: avoid oops on spurious interrupts (second try) Greg Kroah-Hartman
2012-12-14 22:26 ` [ 04/28] ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set Greg Kroah-Hartman
2012-12-14 22:26 ` [ 05/28] ASoC: dmaengine: Correct Makefile when sound is built as module Greg Kroah-Hartman
2012-12-14 22:26 ` [ 06/28] workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s Greg Kroah-Hartman
2012-12-14 22:26 ` [ 07/28] drm/i915: do not ignore eDP bpc settings from vbt Greg Kroah-Hartman
2012-12-14 22:26 ` [ 08/28] drm/i915: do not default to 18 bpp for eDP if missing from VBT Greg Kroah-Hartman
2012-12-14 22:26 ` [ 09/28] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls Greg Kroah-Hartman
2012-12-14 22:26 ` [ 10/28] x86,AMD: Power driver support for AMDs family 16h processors Greg Kroah-Hartman
2012-12-14 22:26 ` [ 11/28] telephony: ijx: buffer overflow in ixj_write_cid() Greg Kroah-Hartman
2012-12-14 22:26 ` [ 12/28] x86: hpet: Fix masking of MSI interrupts Greg Kroah-Hartman
2012-12-14 22:26 ` [ 13/28] USB: add new zte 3g-dongles pid to option.c Greg Kroah-Hartman
2012-12-14 22:26 ` [ 14/28] USB: option: blacklist network interface on Huawei E173 Greg Kroah-Hartman
2012-12-14 22:26 ` [ 15/28] USB: ftdi_sio: Add support for Newport AGILIS motor drivers Greg Kroah-Hartman
2012-12-14 22:26 ` [ 16/28] usb: ftdi_sio: fixup BeagleBone A5+ quirk Greg Kroah-Hartman
2012-12-14 22:26 ` [ 17/28] USB: cp210x: add Virtenio Preon32 device id Greg Kroah-Hartman
2012-12-14 22:26 ` [ 18/28] USB: mark uas driver as BROKEN Greg Kroah-Hartman
2012-12-14 22:26 ` [ 19/28] ACPI / battery: Correct battery capacity values on Thinkpads Greg Kroah-Hartman
2012-12-14 22:26 ` [ 20/28] ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist Greg Kroah-Hartman
2012-12-14 22:26 ` Greg Kroah-Hartman [this message]
2012-12-14 22:26 ` [ 22/28] ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000 Greg Kroah-Hartman
2012-12-14 22:26 ` [ 23/28] USB: OHCI: workaround for hardware bug: retired TDs not added to the Done Queue Greg Kroah-Hartman
2012-12-14 22:26 ` [ 24/28] xhci: Extend Fresco Logic MSI quirk Greg Kroah-Hartman
2012-12-14 22:26 ` [ 25/28] ftrace: Clear bits properly in reset_iter_read() Greg Kroah-Hartman
2012-12-14 22:26 ` [ 26/28] cdc-acm: implement TIOCSSERIAL to avoid blocking close(2) Greg Kroah-Hartman
2012-12-14 22:26 ` [ 27/28] perf test: fix a build error on builtin-test Greg Kroah-Hartman
2012-12-14 22:26 ` [ 28/28] rcu: Fix batch-limit size problem Greg Kroah-Hartman
2012-12-15 14:21 ` [ 00/28] 3.4.24-stable review Satoru Takeuchi
2012-12-15 14:27 ` Shuah Khan
2012-12-15 20:48   ` Shuah Khan

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=20121214222255.366390940@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stable@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).