if (likely(ret == size))
                return 0;
 
-       dev_err(&dev->udev->dev,
-               "Failed to query (%s) UVC control %u on unit %u: %d (exp. %u).\n",
-               uvc_query_name(query), cs, unit, ret, size);
-
-       if (ret != -EPIPE)
+       if (ret != -EPIPE) {
+               dev_err(&dev->udev->dev,
+                       "Failed to query (%s) UVC control %u on unit %u: %d (exp. %u).\n",
+                       uvc_query_name(query), cs, unit, ret, size);
                return ret;
+       }
 
+       /* Reuse data[0] to request the error code. */
        tmp = *(u8 *)data;
 
        ret = __uvc_query_ctrl(dev, UVC_GET_CUR, 0, intfnum,