drm/etnaviv: don't invoke OOM killer from dump code
authorLucas Stach <l.stach@pengutronix.de>
Fri, 2 Dec 2016 10:14:13 +0000 (11:14 +0100)
committerLucas Stach <l.stach@pengutronix.de>
Fri, 2 Dec 2016 18:30:23 +0000 (19:30 +0100)
The dumper is only a debugging aid so we don't want to invoke the OOM
killer if buffer for the potentially large GPU state can't be vmalloced.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
drivers/gpu/drm/etnaviv/etnaviv_dump.c

index 2bef501d4a17211069a9c9dfdad233a44d2d0611..af65491a78e204fa6f68ff2e409c151df5f7d8c9 100644 (file)
@@ -160,7 +160,8 @@ void etnaviv_core_dump(struct etnaviv_gpu *gpu)
        file_size += sizeof(*iter.hdr) * n_obj;
 
        /* Allocate the file in vmalloc memory, it's likely to be big */
-       iter.start = vmalloc(file_size);
+       iter.start = __vmalloc(file_size, GFP_KERNEL | __GFP_HIGHMEM |
+                              __GFP_NOWARN | __GFP_NORETRY, PAGE_KERNEL);
        if (!iter.start) {
                dev_warn(gpu->dev, "failed to allocate devcoredump file\n");
                return;