lkml.org 
[lkml]   [2020]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.5 361/399] drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
    Date
    From: Ben Skeggs <bskeggs@redhat.com>

    [ Upstream commit 0e6176c6d286316e9431b4f695940cfac4ffe6c2 ]

    The implementations for most channel types contains a map of methods to
    priv registers in order to provide debugging info when a disp exception
    has been raised.

    This info is missing from the implementation of PIO channels as they're
    rather simplistic already, however, if an exception is raised by one of
    them, we'd end up triggering a NULL-pointer deref. Not ideal...

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=206299
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
    index bcf32d92ee5a9..50e3539f33d22 100644
    --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
    @@ -74,6 +74,8 @@ nv50_disp_chan_mthd(struct nv50_disp_chan *chan, int debug)

    if (debug > subdev->debug)
    return;
    + if (!mthd)
    + return;

    for (i = 0; (list = mthd->data[i].mthd) != NULL; i++) {
    u32 base = chan->head * mthd->addr;
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-02-21 09:01    [W:4.081 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site