MIPS: dma-default: Defend against NULL dev in massage_gfp_flags
authorMatt Redfearn <matt.redfearn@imgtec.com>
Mon, 21 Dec 2015 15:21:42 +0000 (15:21 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 9 May 2016 10:00:04 +0000 (12:00 +0200)
This patch ensures that the dev parameter is checked for NULL before it
is dereferenced in massage_gfp_flags. If dev is NULL, then fall back
setting the GFP flag requested and available.

Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/11919/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/dma-default.c

index 730d394..cb557d2 100644 (file)
@@ -88,19 +88,20 @@ static gfp_t massage_gfp_flags(const struct device *dev, gfp_t gfp)
        else
 #endif
 #if defined(CONFIG_ZONE_DMA32) && defined(CONFIG_ZONE_DMA)
-            if (dev->coherent_dma_mask < DMA_BIT_MASK(32))
+            if (dev == NULL || dev->coherent_dma_mask < DMA_BIT_MASK(32))
                        dma_flag = __GFP_DMA;
        else if (dev->coherent_dma_mask < DMA_BIT_MASK(64))
                        dma_flag = __GFP_DMA32;
        else
 #endif
 #if defined(CONFIG_ZONE_DMA32) && !defined(CONFIG_ZONE_DMA)
-            if (dev->coherent_dma_mask < DMA_BIT_MASK(64))
+            if (dev == NULL || dev->coherent_dma_mask < DMA_BIT_MASK(64))
                dma_flag = __GFP_DMA32;
        else
 #endif
 #if defined(CONFIG_ZONE_DMA) && !defined(CONFIG_ZONE_DMA32)
-            if (dev->coherent_dma_mask < DMA_BIT_MASK(sizeof(phys_addr_t) * 8))
+            if (dev == NULL ||
+                dev->coherent_dma_mask < DMA_BIT_MASK(sizeof(phys_addr_t) * 8))
                dma_flag = __GFP_DMA;
        else
 #endif