aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/ibmebus.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 0379ddf29220..35f5244782d9 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -266,6 +266,7 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus,
266 const char *buf, size_t count) 266 const char *buf, size_t count)
267{ 267{
268 struct device_node *dn = NULL; 268 struct device_node *dn = NULL;
269 struct device *dev;
269 char *path; 270 char *path;
270 ssize_t rc = 0; 271 ssize_t rc = 0;
271 272
@@ -273,8 +274,10 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus,
273 if (!path) 274 if (!path)
274 return -ENOMEM; 275 return -ENOMEM;
275 276
276 if (bus_find_device(&ibmebus_bus_type, NULL, path, 277 dev = bus_find_device(&ibmebus_bus_type, NULL, path,
277 ibmebus_match_path)) { 278 ibmebus_match_path);
279 if (dev) {
280 put_device(dev);
278 printk(KERN_WARNING "%s: %s has already been probed\n", 281 printk(KERN_WARNING "%s: %s has already been probed\n",
279 __func__, path); 282 __func__, path);
280 rc = -EEXIST; 283 rc = -EEXIST;
@@ -311,6 +314,7 @@ static ssize_t ibmebus_store_remove(struct bus_type *bus,
311 if ((dev = bus_find_device(&ibmebus_bus_type, NULL, path, 314 if ((dev = bus_find_device(&ibmebus_bus_type, NULL, path,
312 ibmebus_match_path))) { 315 ibmebus_match_path))) {
313 of_device_unregister(to_platform_device(dev)); 316 of_device_unregister(to_platform_device(dev));
317 put_device(dev);
314 318
315 kfree(path); 319 kfree(path);
316 return count; 320 return count;