diff options
-rw-r--r-- | arch/powerpc/kernel/ibmebus.c | 8 |
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; |