Эх сурвалжийг харах

Merge tag 'driver-core-3.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

Pull driver core fix from Greg KH:
 "Here is one fix for the hotplug memory path that resolves a regression
  when removing memory that showed up in 3.12-rc1"

* tag 'driver-core-3.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
  driver core: Release device_hotplug_lock when store_mem_state returns EINVAL
Linus Torvalds 11 жил өмнө
parent
commit
83f11a9cf2

+ 5 - 2
drivers/base/memory.c

@@ -333,8 +333,10 @@ store_mem_state(struct device *dev,
 		online_type = ONLINE_KEEP;
 		online_type = ONLINE_KEEP;
 	else if (!strncmp(buf, "offline", min_t(int, count, 7)))
 	else if (!strncmp(buf, "offline", min_t(int, count, 7)))
 		online_type = -1;
 		online_type = -1;
-	else
-		return -EINVAL;
+	else {
+		ret = -EINVAL;
+		goto err;
+	}
 
 
 	switch (online_type) {
 	switch (online_type) {
 	case ONLINE_KERNEL:
 	case ONLINE_KERNEL:
@@ -357,6 +359,7 @@ store_mem_state(struct device *dev,
 		ret = -EINVAL; /* should never happen */
 		ret = -EINVAL; /* should never happen */
 	}
 	}
 
 
+err:
 	unlock_device_hotplug();
 	unlock_device_hotplug();
 
 
 	if (ret)
 	if (ret)