If a client comes up early in the boot process (perhaps was a built-in
driver), qmi_handle_init() will likely fail with a EAFNOSUPPORT since the
underlying ipc router hasn't init'd and registered the address family.
This should not be a fatal error since chances are, the router will come
up later, so recode the error to EPROBE_DEFER so that clients will retry
later.
Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com>
Link: https://lore.kernel.org/r/20191106230511.1290-1-jeffrey.l.hugo@gmail.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
 
        qmi->sock = qmi_sock_create(qmi, &qmi->sq);
        if (IS_ERR(qmi->sock)) {
-               pr_err("failed to create QMI socket\n");
-               ret = PTR_ERR(qmi->sock);
+               if (PTR_ERR(qmi->sock) == -EAFNOSUPPORT) {
+                       ret = -EPROBE_DEFER;
+               } else {
+                       pr_err("failed to create QMI socket\n");
+                       ret = PTR_ERR(qmi->sock);
+               }
                goto err_destroy_wq;
        }