We already have such an exception for clocks, which may be registered early outside the driver model using CLK_OF_DECLARE. Add a further exception for reset controllers, so they too may be registered in CLK_OF_DECLARE on a deep probe system. Checking for success of of_device_ensure_probed() here isn't necessary anyways, because if there is no provider, the list_for_each_entry loop below won't find any and error is propagated. Another solution would be to rewrite deep probe drivers to use the driver model instead of CLK_OF_DECLARE, but this error case if not very obvious, so save others time by just allowing it. Signed-off-by: Ahmad Fatoum <ahmad@xxxxxx> --- drivers/reset/core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index 31fac2de0347..5ab21ac95e3a 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -192,9 +192,8 @@ static struct reset_control *of_reset_control_get_by_index(struct device_node *n if (ret) return ERR_PTR(ret); - ret = of_device_ensure_probed(args.np); - if (ret) - return ERR_PTR(ret); + /* Ignore error, as CLK_OF_DECLARE resets have no proper driver. */ + of_device_ensure_probed(args.np); rcdev = NULL; list_for_each_entry(r, &reset_controller_list, list) { -- 2.38.1