[Nouveau] [PATCH] ram/gf100-: error out if a ridiculous amount of vram is detected

Tobias Klausmann tobias.johannes.klausmann at mni.thm.de
Wed May 20 14:35:23 PDT 2015


Any idea on how to solve the problem. other than just reporting it?

But for now this adds a helpful error message... you may add my R-b.

On 20.05.2015 22:01, Ilia Mirkin wrote:
> Some newer chips have trouble coming up, and we get bad MMIO reads from
> them, like 0xbadf100. This ends up translating into crazy amounts of
> VRAM, which destroys all sorts of other logic down the line. Instead,
> fail device init.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> Cc: stable at kernel.org
> ---
>   drm/nouveau/nvkm/subdev/fb/ramgf100.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/drm/nouveau/nvkm/subdev/fb/ramgf100.c b/drm/nouveau/nvkm/subdev/fb/ramgf100.c
> index de9f395..9d4d196 100644
> --- a/drm/nouveau/nvkm/subdev/fb/ramgf100.c
> +++ b/drm/nouveau/nvkm/subdev/fb/ramgf100.c
> @@ -545,6 +545,12 @@ gf100_ram_create_(struct nvkm_object *parent, struct nvkm_object *engine,
>   		}
>   	}
>   
> +	/* if over 1TB of VRAM is reported, something went very wrong, bail */
> +	if (ram->size > (1ULL << 40)) {
> +		nv_error(pfb, "invalid vram size: %llx\n", ram->size);
> +		return -EINVAL;
> +	}
> +
>   	/* if all controllers have the same amount attached, there's no holes */
>   	if (uniform) {
>   		offset = rsvd_head;



More information about the dri-devel mailing list