On Fri, Nov 07, 2014 at 12:11:24PM +0100, Andrzej Hajda wrote:
On 11/06/2014 06:08 PM, Sjoerd Simons wrote:
On Thu, 2014-11-06 at 23:10 +0900, Inki Dae wrote:
This patch resovles the infinite loop issue incurred when Exyno drm driver is enabled but all kms drivers are disabled on Exynos board by returning -EPROBE_DEFER only in case that there is kms device registered.
It would be nice if you could explain in the commit message/comment why returning -EPROBE_DEFER causes an infinite loop and why it's the wrong thing to do in this case?
Even if you know this probe will never succeed in the future (so deferring is actually pointless), deferring really shouldn't trigger infinte loops in calling code
+CC: Grant and Greg
It seems to be partly an issue with deferred probing. I guess it affects all drivers which in their probe can cause successful probe of sub-driver/sub-device, and after that the main driver defers probing, unwinding changes including removal of sub-driver/sub-device. Driver core incorrectly re-triggers probing in this case.
In this particular case it could be fixed in exynos_drm driver I guess, but maybe it would be good to fix deferred probing, if possible.
Patches are always gladly accepted :)