From: Prasad Joshi <prasadjoshi124@gmail.com>
To: dhowells@redhat.com, linux-kernel@vger.kernel.org,
prasadjoshi124@gmail.com, mitra@kqinfotech.com
Subject: Re: [RFC][PATCH v3 18/22] mm, frv: add gfp flags variant of pud, pmd and pte allocations
Date: Fri, 18 Mar 2011 20:06:38 +0000 [thread overview]
Message-ID: <20110318200638.GS4746@prasad-kvm> (raw)
In-Reply-To: <20110318200547.GR4746@prasad-kvm>
- Added __pmd_alloc_one and __pud_alloc_one, which are same as pmd_alloc_one
and pud_alloc_one respectively, but has extra parameter to specify the
allocation flag
- Added __pte_alloc_one_kernel to allocate page using specified GFP flag
- Changed pte_alloc_one_kernel to call __pte_alloc_one_kernel passing
GFP_KERNEL allocation flag
- Helps in fixing the Bug 30702
Signed-off-by: Prasad Joshi <prasadjoshi124@gmail.com>
Signed-off-by: Anand Mitra <mitra@kqinfotech.com>
---
arch/frv/include/asm/pgalloc.h | 3 +++
arch/frv/include/asm/pgtable.h | 1 +
arch/frv/mm/pgalloc.c | 9 +++++++--
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/arch/frv/include/asm/pgalloc.h b/arch/frv/include/asm/pgalloc.h
index 416d19a..bfc4f7c 100644
--- a/arch/frv/include/asm/pgalloc.h
+++ b/arch/frv/include/asm/pgalloc.h
@@ -35,8 +35,10 @@ extern pgd_t *pgd_alloc(struct mm_struct *);
extern void pgd_free(struct mm_struct *mm, pgd_t *);
extern pte_t *pte_alloc_one_kernel(struct mm_struct *, unsigned long);
+extern pte_t *__pte_alloc_one_kernel(struct mm_struct *, unsigned long, gfp_t);
extern pgtable_t pte_alloc_one(struct mm_struct *, unsigned long);
+extern pgtable_t __pte_alloc_one(struct mm_struct *, unsigned long, gfp_t);
static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
{
@@ -60,6 +62,7 @@ do { \
* inside the pgd, so has no extra memory associated with it.
* (In the PAE case we free the pmds as part of the pgd.)
*/
+#define __pmd_alloc_one(mm, addr,mask) ({ BUG(); ((pmd_t *) 2); })
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *) 2); })
#define pmd_free(mm, x) do { } while (0)
#define __pmd_free_tlb(tlb,x,a) do { } while (0)
diff --git a/arch/frv/include/asm/pgtable.h b/arch/frv/include/asm/pgtable.h
index 6bc241e..698e280 100644
--- a/arch/frv/include/asm/pgtable.h
+++ b/arch/frv/include/asm/pgtable.h
@@ -223,6 +223,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
* allocating and freeing a pud is trivial: the 1-entry pud is
* inside the pgd, so has no extra memory associated with it.
*/
+#define __pud_alloc_one(mm, address, mask) NULL
#define pud_alloc_one(mm, address) NULL
#define pud_free(mm, x) do { } while (0)
#define __pud_free_tlb(tlb, x, address) do { } while (0)
diff --git a/arch/frv/mm/pgalloc.c b/arch/frv/mm/pgalloc.c
index c42c83d..374cd2c 100644
--- a/arch/frv/mm/pgalloc.c
+++ b/arch/frv/mm/pgalloc.c
@@ -20,14 +20,19 @@
pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((aligned(PAGE_SIZE)));
-pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
+pte_t *__pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address, gfp_t gfp_mask)
{
- pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT);
+ pte_t *pte = (pte_t *)__get_free_page(gfp_mask);
if (pte)
clear_page(pte);
return pte;
}
+pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
+{
+ return __pte_alloc_one_kernel(mm, address, GFP_KERNEL | __GFP_REPEAT);
+}
+
pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
{
struct page *page;
--
1.7.0.4
next prev parent reply other threads:[~2011-03-18 20:06 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-18 19:41 [RFC][PATCH v3 00/22] __vmalloc: Propagating GFP allocation flag inside __vmalloc() Prasad Joshi
2011-03-18 19:41 ` Prasad Joshi
2011-03-18 19:41 ` Prasad Joshi
2011-03-18 19:41 ` Prasad Joshi
2011-03-18 19:41 ` [RFC][PATCH v3 00/22] __vmalloc: Propagating GFP allocation flag Prasad Joshi
2011-03-18 19:41 ` [RFC][PATCH v3 00/22] __vmalloc: Propagating GFP allocation flag inside __vmalloc() Prasad Joshi
2011-03-18 19:43 ` [RFC][PATCH v3 01/22] mm: " Prasad Joshi
2011-03-18 19:43 ` Prasad Joshi
2011-03-18 19:46 ` [RFC][PATCH v3 02/22] mm, xtensa: add gfp flags variant of pte allocations Prasad Joshi
2011-03-18 19:47 ` [RFC][PATCH v3 03/22] mm, x86: add gfp flags variant of pud, pmd, and " Prasad Joshi
2011-03-18 19:49 ` [RFC][PATCH v3 04/22] mm, um: add gfp flags variant of pmd " Prasad Joshi
2011-03-18 19:50 ` [RFC][PATCH v3 05/22] mm, tile: " Prasad Joshi
2011-03-18 19:51 ` [RFC][PATCH v3 06/22] mm, sparc: add gfp flags variant of pmd Prasad Joshi
2011-03-18 19:51 ` [RFC][PATCH v3 06/22] mm, sparc: add gfp flags variant of pmd and pte allocations Prasad Joshi
2011-03-18 19:53 ` [RFC][PATCH v3 07/22] mm, sh: add gfp flags variant of pmd and Prasad Joshi
2011-03-18 19:53 ` [RFC][PATCH v3 07/22] mm, sh: add gfp flags variant of pmd and pte allocations Prasad Joshi
2011-03-18 19:55 ` [RFC][PATCH v3 08/22] mm, score: add gfp flags variant of " Prasad Joshi
2011-03-18 19:56 ` [RFC][PATCH v3 09/22] mm, s390: add gfp flags variant of pud, pte, and " Prasad Joshi
2011-03-18 19:57 ` [RFC][PATCH v3 10/22] mm, powerpc: " Prasad Joshi
2011-03-18 19:59 ` [RFC][PATCH v3 11/22] mm, parisc: add gfp flags variant of pmd " Prasad Joshi
2011-03-18 20:00 ` [RFC][PATCH v3 12/22] mm, mn10300: add gfp flags variant of " Prasad Joshi
2011-03-18 20:01 ` [RFC][PATCH v3 13/22] mm, mips: add gfp flags variant of pmd and " Prasad Joshi
2011-03-18 20:02 ` [RFC][PATCH v3 14/22] mm, microblaze: " Prasad Joshi
2011-03-18 20:04 ` [RFC][PATCH v3 15/22] mm, m68k: " Prasad Joshi
2011-03-18 20:04 ` Prasad Joshi
2011-03-18 20:04 ` [RFC][PATCH v3 16/22] mm, m32r: " Prasad Joshi
2011-03-18 20:05 ` [RFC][PATCH v3 17/22] mm, ia64: add gfp flags variant of pud, Prasad Joshi
2011-03-18 20:05 ` [RFC][PATCH v3 17/22] mm, ia64: add gfp flags variant of pud, pmd and pte allocations Prasad Joshi
2011-03-18 20:06 ` Prasad Joshi [this message]
2011-03-18 20:07 ` [RFC][PATCH v3 19/22] mm, cris: add gfp flags variant of " Prasad Joshi
2011-03-18 20:08 ` [RFC][PATCH v3 20/22] mm, avr32: " Prasad Joshi
2011-03-18 20:09 ` [RFC][PATCH v3 21/22] mm, arm: add gfp flags variant of pmd and " Prasad Joshi
2011-03-18 20:09 ` Prasad Joshi
2011-03-18 20:10 ` [RFC][PATCH v3 22/22] mm, alpha: " Prasad Joshi
2011-03-21 8:34 ` [RFC][PATCH v3 09/22] mm, s390: add gfp flags variant of pud, pte, " Martin Schwidefsky
2011-03-21 19:02 ` Prasad Joshi
2011-03-22 7:56 ` Martin Schwidefsky
2011-03-22 14:42 ` [RFC][PATCH v3 07/22] mm, sh: add gfp flags variant of pmd " Paul Mundt
2011-03-22 14:42 ` Paul Mundt
[not found] ` <4D83B7F2.4000903@tilera.com>
2011-03-18 20:12 ` [RFC][PATCH v3 05/22] mm, tile: " Prasad Joshi
2011-03-18 22:17 ` [RFC][PATCH v3 03/22] mm, x86: add gfp flags variant of pud, pmd, " David Rientjes
2011-03-21 19:05 ` Prasad Joshi
2011-03-21 20:15 ` David Rientjes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110318200638.GS4746@prasad-kvm \
--to=prasadjoshi124@gmail.com \
--cc=dhowells@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mitra@kqinfotech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.