diff options
| -rw-r--r-- | drivers/nvdimm/bus.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c index 8aae6dcc839f..9148015ed803 100644 --- a/drivers/nvdimm/bus.c +++ b/drivers/nvdimm/bus.c | |||
| @@ -488,6 +488,8 @@ static void nd_async_device_register(void *d, async_cookie_t cookie) | |||
| 488 | put_device(dev); | 488 | put_device(dev); |
| 489 | } | 489 | } |
| 490 | put_device(dev); | 490 | put_device(dev); |
| 491 | if (dev->parent) | ||
| 492 | put_device(dev->parent); | ||
| 491 | } | 493 | } |
| 492 | 494 | ||
| 493 | static void nd_async_device_unregister(void *d, async_cookie_t cookie) | 495 | static void nd_async_device_unregister(void *d, async_cookie_t cookie) |
| @@ -507,6 +509,8 @@ void __nd_device_register(struct device *dev) | |||
| 507 | if (!dev) | 509 | if (!dev) |
| 508 | return; | 510 | return; |
| 509 | dev->bus = &nvdimm_bus_type; | 511 | dev->bus = &nvdimm_bus_type; |
| 512 | if (dev->parent) | ||
| 513 | get_device(dev->parent); | ||
| 510 | get_device(dev); | 514 | get_device(dev); |
| 511 | async_schedule_domain(nd_async_device_register, dev, | 515 | async_schedule_domain(nd_async_device_register, dev, |
| 512 | &nd_async_domain); | 516 | &nd_async_domain); |
