Pull driver core fix from Greg KH: "Here's a single driver core fix that resolves an issue a lot of users have been hitting for a while now. It's been tested a lot and has been in linux-next successfully for a while" * tag 'driver-core-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: base/platform: Fix platform drivers with no probe callback
Unified · Split
| @@ -558,10 +558,15 @@ static int platform_drv_probe(struct device *_dev) · 557 unmodified lines | ||
| 558 | 558 | return ret; |
| 559 | 559 | |
| 560 | 560 | ret = dev_pm_domain_attach(_dev, true); |
| 561 | − if (ret != -EPROBE_DEFER && drv->probe) { | |
| 562 | − ret = drv->probe(dev); | |
| 563 | − if (ret) | |
| 564 | − dev_pm_domain_detach(_dev, true); | |
| 561 | + if (ret != -EPROBE_DEFER) { | |
| 562 | + if (drv->probe) { | |
| 563 | + ret = drv->probe(dev); | |
| 564 | + if (ret) | |
| 565 | + dev_pm_domain_detach(_dev, true); | |
| 566 | + } else { | |
| 567 | + /* don't fail if just dev_pm_domain_attach failed */ | |
| 568 | + ret = 0; | |
| 569 | + } | |
| 565 | 570 | } |
| 566 | 571 | |
| 567 | 572 | if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) { |