Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1648698

[PATCH 4.4 080/103] powerpc/pseries: Fix of_node_put() underflow during DLPAR remove

From Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Newsgroups linux.kernel
Subject [PATCH 4.4 080/103] powerpc/pseries: Fix of_node_put() underflow during DLPAR remove
Date 2017-05-23 23:10 +0200
Message-ID <tKpe4-rD-67@gated-at.bofh.it> (permalink)
References <tKoKZ-8pv-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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

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

From: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>

commit 68baf692c435339e6295cb470ea5545cbc28160e upstream.

Historically struct device_node references were tracked using a kref embedded as
a struct field. Commit 75b57ecf9d1d ("of: Make device nodes kobjects so they
show up in sysfs") (Mar 2014) refactored device_nodes to be kobjects such that
the device tree could by more simply exposed to userspace using sysfs.

Commit 0829f6d1f69e ("of: device_node kobject lifecycle fixes") (Mar 2014)
followed up these changes to better control the kobject lifecycle and in
particular the referecne counting via of_node_get(), of_node_put(), and
of_node_init().

A result of this second commit was that it introduced an of_node_put() call when
a dynamic node is detached, in of_node_remove(), that removes the initial kobj
reference created by of_node_init().

Traditionally as the original dynamic device node user the pseries code had
assumed responsibilty for releasing this final reference in its platform
specific DLPAR detach code.

This patch fixes a refcount underflow introduced by commit 0829f6d1f6, and
recently exposed by the upstreaming of the recount API.

Messages like the following are no longer seen in the kernel log with this
patch following DLPAR remove operations of cpus and pci devices.

  rpadlpar_io: slot PHB 72 removed
  refcount_t: underflow; use-after-free.
  ------------[ cut here ]------------
  WARNING: CPU: 5 PID: 3335 at lib/refcount.c:128 refcount_sub_and_test+0xf4/0x110

Fixes: 0829f6d1f69e ("of: device_node kobject lifecycle fixes")
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
[mpe: Make change log commit references more verbose]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/platforms/pseries/dlpar.c |    1 -
 1 file changed, 1 deletion(-)

--- a/arch/powerpc/platforms/pseries/dlpar.c
+++ b/arch/powerpc/platforms/pseries/dlpar.c
@@ -280,7 +280,6 @@ int dlpar_detach_node(struct device_node
 	if (rc)
 		return rc;
 
-	of_node_put(dn); /* Must decrement the refcount */
 	return 0;
 }
 

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 4.4 000/103] 4.4.70-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 099/103] PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 098/103] tracing/kprobes: Enforce kprobes teardown after testing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 097/103] osf_wait4(): fix infoleak Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 095/103] uwb: fix device quirk on big-endian hosts Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 012/103] dm bufio: avoid a possible ABBA deadlock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 037/103] proc: Fix unbalanced hard link numbers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 029/103] drm/amdgpu: Avoid overflows/divide-by-zero in latency_watermark calculations. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 034/103] drm/nouveau/tmr: avoid processing completed alarms when adding a new one Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 030/103] drm/amdgpu: Make display watermark calculations more accurate Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 078/103] [media] cx231xx-cards: fix NULL-deref at probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 014/103] dm cache metadata: fail operations if fail_io mode has been established Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:00 +0200
  [PATCH 4.4 077/103] [media] cx231xx-audio: fix NULL-deref at probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:10 +0200
  [PATCH 4.4 080/103] powerpc/pseries: Fix of_node_put() underflow during DLPAR remove Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:10 +0200
  [PATCH 4.4 073/103] [media] dib0700: fix NULL-deref at probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:20 +0200
  [PATCH 4.4 082/103] ARM: dts: at91: sama5d3_xplained: fix ADC vref Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:20 +0200
  [PATCH 4.4 081/103] powerpc/64e: Fix hang when debugging programs with relocated kernel Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:20 +0200
  [PATCH 4.4 079/103] powerpc/book3s/mce: Move add_taint() later in virtual mode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:20 +0200
  [PATCH 4.4 102/103] nfsd: encoders mustnt use unitialized values in error cases Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:30 +0200
  [PATCH 4.4 103/103] drivers: char: mem: Check for address space wraparound with mmap() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:30 +0200
  [PATCH 4.4 101/103] drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-23 23:30 +0200
  Re: [PATCH 4.4 000/103] 4.4.70-stable review Guenter Roeck <linux@roeck-us.net> - 2017-05-24 06:10 +0200
    Re: [PATCH 4.4 000/103] 4.4.70-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-24 09:00 +0200
      Re: [PATCH 4.4 000/103] 4.4.70-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-24 09:00 +0200
  Re: [PATCH 4.4 000/103] 4.4.70-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-24 09:10 +0200
    Re: [PATCH 4.4 000/103] 4.4.70-stable review Thomas Voegtle <tv@lio96.de> - 2017-05-24 11:40 +0200
      Re: [PATCH 4.4 000/103] 4.4.70-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-24 13:40 +0200
        Re: [PATCH 4.4 000/103] 4.4.70-stable review Thomas Voegtle <tv@lio96.de> - 2017-05-24 14:10 +0200
          Re: [PATCH 4.4 000/103] 4.4.70-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-24 15:00 +0200
    Re: [PATCH 4.4 000/103] 4.4.70-stable review Guenter Roeck <linux@roeck-us.net> - 2017-05-24 14:50 +0200
      Re: [PATCH 4.4 000/103] 4.4.70-stable review Mark Brown <broonie@kernel.org> - 2017-05-24 15:10 +0200
        Re: [PATCH 4.4 000/103] 4.4.70-stable review Guenter Roeck <linux@roeck-us.net> - 2017-05-24 15:20 +0200
          Re: [PATCH 4.4 000/103] 4.4.70-stable review Mark Brown <broonie@kernel.org> - 2017-05-24 17:10 +0200
        Re: [PATCH 4.4 000/103] 4.4.70-stable review Guenter Roeck <linux@roeck-us.net> - 2017-05-24 15:40 +0200
  Re: [PATCH 4.4 000/103] 4.4.70-stable review Guenter Roeck <linux@roeck-us.net> - 2017-05-24 22:30 +0200

csiph-web