On Wed, 18 Jul 2007 16:25:34 +1000 Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote:
> I've noticed lots of failures of vmalloc_32 on machines where it > shouldn't have failed unless it was doing an atomic operation. > > Looking closely, I noticed that: > > #if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) > #define GFP_VMALLOC32 GFP_DMA32 > #elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA) > #define GFP_VMALLOC32 GFP_DMA > #else > #define GFP_VMALLOC32 GFP_KERNEL > #endif > > Which seems to be incorrect, it should always -or- in the DMA flags > on top of GFP_KERNEL, thus this patch. > > Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> > --- > > This fixes frequent errors launchin X with the nouveau DRM for example. > > Index: linux-work/mm/vmalloc.c > =================================================================== > --- linux-work.orig/mm/vmalloc.c 2007-07-18 16:22:00.000000000 +1000 > +++ linux-work/mm/vmalloc.c 2007-07-18 16:22:11.000000000 +1000 > @@ -578,9 +578,9 @@ void *vmalloc_exec(unsigned long size) > } > > #if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) > -#define GFP_VMALLOC32 GFP_DMA32 > +#define GFP_VMALLOC32 GFP_DMA32 | GFP_KERNEL > #elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA) > -#define GFP_VMALLOC32 GFP_DMA > +#define GFP_VMALLOC32 GFP_DMA | GFP_KERNEL > #else > #define GFP_VMALLOC32 GFP_KERNEL > #endif > whoops, yes. Are those errors serious and common enough for 2.6.22.x? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/