summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2020-12-03 08:34:07 +1000
committerBen Skeggs <bskeggs@redhat.com>2021-02-11 10:14:17 +1000
commit5a479d45653f52a7834424eb64758e4e8df775ae (patch)
tree8afd43cf6369e435cfa87e73fc7a63348746c464 /drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
parent5ec69c91e7ba97c3e9318e44f03d7dbbd475d92a (diff)
drm/nouveau/pmu: serialise send() with private mutex
nvkm_subdev.mutex is going away. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
index a0fe607c9c07..94253304bb90 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
@@ -148,6 +148,7 @@ nvkm_pmu_dtor(struct nvkm_subdev *subdev)
nvkm_falcon_cmdq_del(&pmu->hpq);
nvkm_falcon_qmgr_del(&pmu->qmgr);
nvkm_falcon_dtor(&pmu->falcon);
+ mutex_destroy(&pmu->send.mutex);
return nvkm_pmu(subdev);
}
@@ -168,6 +169,8 @@ nvkm_pmu_ctor(const struct nvkm_pmu_fwif *fwif, struct nvkm_device *device,
nvkm_subdev_ctor(&nvkm_pmu, device, index, &pmu->subdev);
+ mutex_init(&pmu->send.mutex);
+
INIT_WORK(&pmu->recv.work, nvkm_pmu_recv);
init_waitqueue_head(&pmu->recv.wait);