Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756930Ab1CNRuw (ORCPT ); Mon, 14 Mar 2011 13:50:52 -0400 Received: from mail-qy0-f181.google.com ([209.85.216.181]:61116 "EHLO mail-qy0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751249Ab1CNRuu (ORCPT ); Mon, 14 Mar 2011 13:50:50 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=mXss1wApLGpnZ4hjVVxGLw10rMPYPw2vz4D5XI2R5leQRPlMDU5sFyhzO/tGMCOq09 ZpLutngGzuzTG+e1h1ujMEoUKinrJVIpclMznt5yqGUq3n4A42LuEfIkmV426UBFY/eB J0dyLz+/3kL7YzZvLQG9MxxctUm0bSjSaEviw= MIME-Version: 1.0 Date: Mon, 14 Mar 2011 17:50:49 +0000 Message-ID: Subject: [RFC][PATCH v2 12/23] (parisc) __vmalloc: add gfp flags variant of pte and pmd allocation From: Prasad Joshi To: Prasad Joshi , Anand Mitra , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, Kyle McMartin , Helge Deller , "James E.J. Bottomley" , linux-parisc@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2658 Lines: 75 __vmalloc: propagating GFP allocation flag. - adds functions to allow caller to pass the GFP flag for memory allocation - helps in fixing the Bug 30702 (__vmalloc(GFP_NOFS) can callback file system evict_inode). Signed-off-by: Anand Mitra Signed-off-by: Prasad Joshi --- Chnagelog: arch/parisc/include/asm/pgalloc.h | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) --- diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h index fc987a1..0284a43 100644 --- a/arch/parisc/include/asm/pgalloc.h +++ b/arch/parisc/include/asm/pgalloc.h @@ -61,15 +61,20 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT)); } -static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) +static inline pmd_t * +__pmd_alloc_one(struct mm_struct *mm, unsigned long address, gfp_t gfp_mask) { - pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT, - PMD_ORDER); + pmd_t *pmd = (pmd_t *)__get_free_pages(gfp_mask, PMD_ORDER); if (pmd) memset(pmd, 0, PAGE_SIZE<