Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756645Ab1E1XeQ (ORCPT ); Sat, 28 May 2011 19:34:16 -0400 Received: from smtp-out.google.com ([216.239.44.51]:19574 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755277Ab1E1XeN (ORCPT ); Sat, 28 May 2011 19:34:13 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=date:from:x-x-sender:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version:content-type; b=o2nrK/Hk1zmSXedvYRXiWBmgF4bXpf3jisdapwviuqm0++bkwObAVlg5WntC8dWcwl XvsxK1sH7Yvbh4tvXO2g== Date: Sat, 28 May 2011 16:34:07 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: Dmitry Eremin-Solenikov , Nicolas Pitre , Russell King cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Eric Miao , Samuel Ortiz Subject: Re: IrDA driver fails on PXA255 In-Reply-To: <20110528205701.GA1788@doriath.ww600.siemens.net> Message-ID: References: <20110528205701.GA1788@doriath.ww600.siemens.net> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-System-Of-Record: true Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2822 Lines: 47 On Sun, 29 May 2011, Dmitry Eremin-Solenikov wrote: > Hello, > > Since a197b59ae6e8bee56fcef37ea2482dc08414e2ac (mm: fail GFP_DMA > allocations when ZONE_DMA is not configured), pxaficp_ir.c driver fails > to probe: pxa_irda_init_iobuf asks for a buffer with GFP_KERNEL | > GFP_DMA flags, which fail nicely with the following trace: > > ------------[ cut here ]------------ > WARNING: at mm/page_alloc.c:2251 > __alloc_pages_nodemask+0xa0/0x5ac() > Modules linked in: > [] (unwind_backtrace+0x0/0xf0) from [] (warn_slowpath_common+0x4c/0x64) > [] (warn_slowpath_common+0x4c/0x64) from [] (warn_slowpath_null+0x18/0x1c) > [] (warn_slowpath_null+0x18/0x1c) from [] (__alloc_pages_nodemask+0xa0/0x5ac) > [] (__alloc_pages_nodemask+0xa0/0x5ac) from [] (__get_free_pages+0x10/0x3c) > [] (__get_free_pages+0x10/0x3c) from [] (pxa_irda_init_iobuf+0x18/0x48) > [] (pxa_irda_init_iobuf+0x18/0x48) from [] (pxa_irda_probe+0x11c/0x32c) > [] (pxa_irda_probe+0x11c/0x32c) from [] (platform_drv_probe+0x14/0x18) > [] (platform_drv_probe+0x14/0x18) from [] (really_probe+0xa0/0x158) > [] (really_probe+0xa0/0x158) from [] (driver_probe_device+0x4c/0x64) > [] (driver_probe_device+0x4c/0x64) from [] (__driver_attach+0x60/0x84) > [] (__driver_attach+0x60/0x84) from [] (bus_for_each_dev+0x48/0x84) > [] (bus_for_each_dev+0x48/0x84) from [] (bus_add_driver+0xa8/0x220) > [] (bus_add_driver+0xa8/0x220) from [] (driver_register+0xac/0x13c) > [] (driver_register+0xac/0x13c) from [] (do_one_initcall+0x94/0x16c) > [] (do_one_initcall+0x94/0x16c) from [] (kernel_init+0x94/0x140) > [] (kernel_init+0x94/0x140) from [] (kernel_thread_exit+0x0/0x8) > ---[ end trace 0b8bf08f70147098 ]--- > The driver is attempting to allocate DMA memory and you have CONFIG_ZONE_DMA disabled, which is the only reason you would get this warning. If the allocation did not fail as a result of a197b59ae6e8, the page allocator may return any memory in a higher zone that the driver may not be expecting. If you had never noticed a problem before, it may be possible that the driver doesn't actually have any zone restrictions and GFP_DMA can be removed, but this code is pretty old. Otherwise, it'll need to depend on ZONE_DMA in the Kconfig. Let's cc Nicolas and Russell as well. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/