Skip to contentSkip to conversation

Patch "powerpc/ibmebus: Fix device reference leaks in sysfs interface" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Jan 17, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

powerpc/ibmebus: Fix device reference leaks in sysfs interface

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
powerpc-ibmebus-fix-device-reference-leaks-in-sysfs-interface.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From fe0f3168169f7c34c29b0cf0c489f126a7f29643 Mon Sep 17 00:00:00 2001

From: Johan Hovold <[email protected]>
Date: Tue, 1 Nov 2016 16:26:00 +0100
Subject: powerpc/ibmebus: Fix device reference leaks in sysfs interface

From: Johan Hovold <[email protected]>

commit fe0f3168169f7c34c29b0cf0c489f126a7f29643 upstream.

Make sure to drop any reference taken by bus_find_device() in the sysfs callbacks that are used to create and destroy devices based on device-tree entries.

Fixes 6bccf755ff53 ("[POWERPC] ibmebus: dynamic addition/removal of adapters, some code cleanup")
---
 arch/powerpc/kernel/ibmebus.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
arch/powerpc/kernel/ibmebus.c +6 -2
@@ -266,6 +266,7 @@ static ssize_t ibmebus_store_probe(struc
 				   const char *buf, size_t count)
 {
 	struct device_node *dn = NULL;
+	struct device *dev;
 	char *path;
 	ssize_t rc = 0;
 
@@ -273,8 +274,10 @@ static ssize_t ibmebus_store_probe(struc
 	if (!path)
 		return -ENOMEM;
 
-	if (bus_find_device(&ibmebus_bus_type, NULL, path,
-			    ibmebus_match_path)) {
+	dev = bus_find_device(&ibmebus_bus_type, NULL, path,
+			      ibmebus_match_path);
+	if (dev) {
+		put_device(dev);
 		printk(KERN_WARNING "%s: %s has already been probed\n",
 		       __func__, path);
 		rc = -EEXIST;
@@ -311,6 +314,7 @@ static ssize_t ibmebus_store_remove(stru
 	if ((dev = bus_find_device(&ibmebus_bus_type, NULL, path,
 				   ibmebus_match_path))) {
 		of_device_unregister(to_platform_device(dev));
+		put_device(dev);
 
 		kfree(path);
 		return count;

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/usb-serial-ch341-fix-modem-control-and-b0-handling.patch queue-4.9/powerpc-ibmebus-fix-further-device-reference-leaks.patch queue-4.9/usb-serial-ch341-fix-control-message-error-handling.patch queue-4.9/usb-serial-ch341-fix-open-and-resume-after-b0.patch queue-4.9/usb-serial-ch341-fix-open-error-handling.patch queue-4.9/usb-serial-ch341-fix-initial-modem-control-state.patch queue-4.9/bus-vexpress-config-fix-device-reference-leak.patch queue-4.9/powerpc-ibmebus-fix-device-reference-leaks-in-sysfs-interface.patch queue-4.9/usb-serial-kl5kusb105-fix-line-state-error-handling.patch queue-4.9/usb-serial-ch341-fix-resume-after-reset.patch