mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
drm/nouveau: fix oops in client init failure path
[ Upstream commit a43b16dda2 ]
The NV_ERROR macro requires drm->client to be initialised, which it may not
be at this stage of the init process.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d097790cec
commit
5f0e9912e8
@@ -230,7 +230,7 @@ nouveau_cli_init(struct nouveau_drm *drm, const char *sname,
|
||||
mutex_unlock(&drm->master.lock);
|
||||
}
|
||||
if (ret) {
|
||||
NV_ERROR(drm, "Client allocation failed: %d\n", ret);
|
||||
NV_PRINTK(err, cli, "Client allocation failed: %d\n", ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -240,37 +240,37 @@ nouveau_cli_init(struct nouveau_drm *drm, const char *sname,
|
||||
}, sizeof(struct nv_device_v0),
|
||||
&cli->device);
|
||||
if (ret) {
|
||||
NV_ERROR(drm, "Device allocation failed: %d\n", ret);
|
||||
NV_PRINTK(err, cli, "Device allocation failed: %d\n", ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = nvif_mclass(&cli->device.object, mmus);
|
||||
if (ret < 0) {
|
||||
NV_ERROR(drm, "No supported MMU class\n");
|
||||
NV_PRINTK(err, cli, "No supported MMU class\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = nvif_mmu_init(&cli->device.object, mmus[ret].oclass, &cli->mmu);
|
||||
if (ret) {
|
||||
NV_ERROR(drm, "MMU allocation failed: %d\n", ret);
|
||||
NV_PRINTK(err, cli, "MMU allocation failed: %d\n", ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = nvif_mclass(&cli->mmu.object, vmms);
|
||||
if (ret < 0) {
|
||||
NV_ERROR(drm, "No supported VMM class\n");
|
||||
NV_PRINTK(err, cli, "No supported VMM class\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = nouveau_vmm_init(cli, vmms[ret].oclass, &cli->vmm);
|
||||
if (ret) {
|
||||
NV_ERROR(drm, "VMM allocation failed: %d\n", ret);
|
||||
NV_PRINTK(err, cli, "VMM allocation failed: %d\n", ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = nvif_mclass(&cli->mmu.object, mems);
|
||||
if (ret < 0) {
|
||||
NV_ERROR(drm, "No supported MEM class\n");
|
||||
NV_PRINTK(err, cli, "No supported MEM class\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user