[Nouveau] [Fwd: [PATCH] Fix null dereference oopses for nv40 cards] kernel 3.13.0-rc8
Ben Skeggs
skeggsb at gmail.com
Mon Jan 13 21:07:39 PST 2014
On Tue, Jan 14, 2014 at 1:22 PM, Bob Gleitsmann <rjgleits at bellsouth.net> wrote:
> I should have mentioned that this applies to Linus' 3.13.0-rc7 and rc8
> git. Maybe it's obvious.
Hey Bob,
Thanks for reporting this. Can you try the attached patch instead and
report if it helps you?
Ben.
>
> Sorry about that.
>
> Bob
> -------- Forwarded Message --------
> From: Bob Gleitsmann <rjgleits at bellsouth.net>
> To: bskeggs at redhat.com
> Cc: nouveau at lists.freedesktop.org, dri-devel at lists.freedesktop.org
> Subject: [PATCH] Fix null dereference oopses for nv40 cards
> Date: Mon, 13 Jan 2014 01:45:36 -0500
>
> The problem affects nv40 cards during booting. It comes from there being
> two places where subdev arrays are maintained. A commit was recently
> added to make the two equal. However, the struct nouveau_device version
> ends up being referenced before it is initialized. The problem arises
> during the creation of the INSTMEM and THERM subdevs. '
>
> Signed off by: Bob Gleitsmann rjgleits at bellsouth.net
>
> diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c b/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c
> index b10a143..0f494ca 100644
> --- a/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c
> +++ b/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c
> @@ -23,6 +23,7 @@
> */
>
> #include <engine/graph/nv40.h>
> +#include <core/device.h>
>
> #include "nv04.h"
>
> @@ -38,6 +39,7 @@ nv40_instmem_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
>
> ret = nouveau_instmem_create(parent, engine, oclass, &priv);
> *pobject = nv_object(priv);
> + device->subdev[NVDEV_SUBDEV_INSTMEM] = *pobject;
> if (ret)
> return ret;
>
> diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c b/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
> index 002e51b..59b25be 100644
> --- a/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
> +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
> @@ -187,9 +187,11 @@ nv40_therm_ctor(struct nouveau_object *parent,
> {
> struct nv40_therm_priv *priv;
> int ret;
> + struct nouveau_device *device = nv_device(parent);
>
> ret = nouveau_therm_create(parent, engine, oclass, &priv);
> *pobject = nv_object(priv);
> + device->subdev[NVDEV_SUBDEV_THERM] = *pobject;
> if (ret)
> return ret;
>
>
>
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-fix-null-ptr-dereferences-on-some-boards.patch
Type: text/x-patch
Size: 1629 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20140114/5ea59dbe/attachment.bin>
More information about the Nouveau
mailing list