From: Prasad Joshi <prasadjoshi124@gmail.com>
To: monstr@monstr.eu, microblaze-uclinux@itee.uq.edu.au,
linux-kernel@vger.kernel.org, prasadjoshi124@gmail.com,
mitra@kqinfotech.com
Subject: Re: [RFC][PATCH v3 14/22] mm, microblaze: add gfp flags variant of pmd and pte allocations
Date: Fri, 18 Mar 2011 20:02:55 +0000 [thread overview]
Message-ID: <20110318200254.GO4746@prasad-kvm> (raw)
In-Reply-To: <20110318200150.GN4746@prasad-kvm>
- Added function __pmd_alloc_one which is same as pmd_alloc_one, but accepts
an extra argument for gfp_t flag.
- Added __pte_alloc_one_kernel() to allocated zeroed page using
allocation flag passed as an argument. If the slab allocator is not
initialized the allocation flag is not passed down the call hierarchy.
i.e. early_get_page() is not modified.
- pte_alloc_one_kernel calls __pte_alloc_one_kernel using
GFP_KERNEL | __GFP_REPEAT 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/microblaze/include/asm/pgalloc.h | 3 +++
arch/microblaze/mm/pgtable.c | 13 +++++++++----
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h
index ebd3579..07864a1 100644
--- a/arch/microblaze/include/asm/pgalloc.h
+++ b/arch/microblaze/include/asm/pgalloc.h
@@ -106,9 +106,11 @@ extern inline void free_pgd_slow(pgd_t *pgd)
* the pgd will always be present..
*/
#define pmd_alloc_one_fast(mm, address) ({ BUG(); ((pmd_t *)1); })
+#define __pmd_alloc_one(mm, address, mask) ({ BUG(); ((pmd_t *)2); })
#define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); })
extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr);
+extern pte_t *__pte_alloc_one_kernel(struct mm_struct *, unsigned long, gfp_t);
static inline struct page *pte_alloc_one(struct mm_struct *mm,
unsigned long address)
@@ -175,6 +177,7 @@ extern inline void pte_free(struct mm_struct *mm, struct page *ptepage)
* We don't have any real pmd's, and this code never triggers because
* the pgd will always be present..
*/
+#define __pmd_alloc_one(mm, address, mask) ({ BUG(); ((pmd_t *)2); })
#define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); })
#define pmd_free(mm, x) do { } while (0)
#define __pmd_free_tlb(tlb, x, addr) pmd_free((tlb)->mm, x)
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c
index 59bf233..ae4d315 100644
--- a/arch/microblaze/mm/pgtable.c
+++ b/arch/microblaze/mm/pgtable.c
@@ -240,13 +240,12 @@ unsigned long iopa(unsigned long addr)
return pa;
}
-__init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
- unsigned long address)
+__init_refok pte_t *__pte_alloc_one_kernel(struct mm_struct *mm,
+ unsigned long address, gfp_t gfp_mask)
{
pte_t *pte;
if (mem_init_done) {
- pte = (pte_t *)__get_free_page(GFP_KERNEL |
- __GFP_REPEAT | __GFP_ZERO);
+ pte = (pte_t *)__get_free_page(gfp_mask | __GFP_ZERO);
} else {
pte = (pte_t *)early_get_page();
if (pte)
@@ -254,3 +253,9 @@ __init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
}
return pte;
}
+
+__init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
+ unsigned long address)
+{
+ return __pte_alloc_one_kernel(mm, address, GFP_KERNEL | __GFP_REPEAT);
+}
--
1.7.0.4
next prev parent reply other threads:[~2011-03-18 20:02 UTC|newest]
Thread overview: 31+ 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:43 ` [RFC][PATCH v3 01/22] mm: " 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: " Prasad Joshi
2011-03-18 19:53 ` [RFC][PATCH v3 07/22] mm, sh: " 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 ` Prasad Joshi [this message]
2011-03-18 20:04 ` [RFC][PATCH v3 15/22] mm, m68k: " 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:06 ` [RFC][PATCH v3 18/22] mm, frv: " Prasad Joshi
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: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
[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=20110318200254.GO4746@prasad-kvm \
--to=prasadjoshi124@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=microblaze-uclinux@itee.uq.edu.au \
--cc=mitra@kqinfotech.com \
--cc=monstr@monstr.eu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox