Commit ca0367ca authored by Lyude Paul's avatar Lyude Paul

drm/nouveau/kms: Fix failure path for creating DP connectors

It looks like that when we moved nouveau over to using drm_dp_aux_init()
and registering it's aux bus during late connector registration, we totally
forgot to fix the failure codepath in nouveau_connector_create() - as it
still seems to assume that drm_dp_aux_init() can fail (it can't).

So, let's fix that and also add a missing check to ensure that we've
properly allocated nv_connector->aux.name while we're at it.
Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
Reviewed-by: default avatarDavid Airlie <airlied@linux.ie>
Fixes: fd43ad9d ("drm/nouveau/kms/nv50-: Move AUX adapter reg to connector late register/early unregister")
Cc: <stable@vger.kernel.org> # v5.14+
Link: https://patchwork.freedesktop.org/patch/msgid/20220526204313.656473-1-lyude@redhat.com
parent 7d09c760
...@@ -1361,13 +1361,11 @@ nouveau_connector_create(struct drm_device *dev, ...@@ -1361,13 +1361,11 @@ nouveau_connector_create(struct drm_device *dev,
snprintf(aux_name, sizeof(aux_name), "sor-%04x-%04x", snprintf(aux_name, sizeof(aux_name), "sor-%04x-%04x",
dcbe->hasht, dcbe->hashm); dcbe->hasht, dcbe->hashm);
nv_connector->aux.name = kstrdup(aux_name, GFP_KERNEL); nv_connector->aux.name = kstrdup(aux_name, GFP_KERNEL);
drm_dp_aux_init(&nv_connector->aux); if (!nv_connector->aux.name) {
if (ret) {
NV_ERROR(drm, "Failed to init AUX adapter for sor-%04x-%04x: %d\n",
dcbe->hasht, dcbe->hashm, ret);
kfree(nv_connector); kfree(nv_connector);
return ERR_PTR(ret); return ERR_PTR(-ENOMEM);
} }
drm_dp_aux_init(&nv_connector->aux);
fallthrough; fallthrough;
default: default:
funcs = &nouveau_connector_funcs; funcs = &nouveau_connector_funcs;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment