mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-24 05:04:00 +08:00
drm/nouveau/secboot: fix NULL pointer dereference
The msgqueue pointer validity should be checked by its owner, not by the msgqueue code itself to avoid this situation. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Reported-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
aa7fc0ca75
commit
b7d6c8db49
@ -59,6 +59,13 @@ static void
|
||||
nvkm_sec2_recv(struct work_struct *work)
|
||||
{
|
||||
struct nvkm_sec2 *sec2 = container_of(work, typeof(*sec2), work);
|
||||
|
||||
if (!sec2->queue) {
|
||||
nvkm_warn(&sec2->engine.subdev,
|
||||
"recv function called while no firmware set!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
nvkm_msgqueue_recv(sec2->queue);
|
||||
}
|
||||
|
||||
|
@ -510,11 +510,10 @@ nvkm_msgqueue_del(struct nvkm_msgqueue **queue)
|
||||
void
|
||||
nvkm_msgqueue_recv(struct nvkm_msgqueue *queue)
|
||||
{
|
||||
if (!queue || !queue->func || !queue->func->recv) {
|
||||
if (!queue->func || !queue->func->recv) {
|
||||
const struct nvkm_subdev *subdev = queue->falcon->owner;
|
||||
|
||||
nvkm_warn(subdev,
|
||||
"cmdqueue recv function called while no firmware set!\n");
|
||||
nvkm_warn(subdev, "missing msgqueue recv function\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,12 @@
|
||||
static void
|
||||
gm20b_pmu_recv(struct nvkm_pmu *pmu)
|
||||
{
|
||||
if (!pmu->queue) {
|
||||
nvkm_warn(&pmu->subdev,
|
||||
"recv function called while no firmware set!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
nvkm_msgqueue_recv(pmu->queue);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user