All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: Christoph Hellwig <hch@lst.de>, Mel Gorman <mel@skynet.ie>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: David Chinner <dgc@sgi.com>, Jens Axboe <jens.axboe@oracle.com>
Subject: [01/17] Vmalloc: Move vmalloc_to_page to mm/vmalloc.
Date: Tue, 18 Sep 2007 20:36:06 -0700	[thread overview]
Message-ID: <20070919033640.547324852@sgi.com> (raw)
In-Reply-To: 20070919033605.785839297@sgi.com

[-- Attachment #1: vcompound_move_vmalloc_to_page --]
[-- Type: text/plain, Size: 4474 bytes --]

We already have page table manipulation for vmalloc in vmalloc.c. Move the
vmalloc_to_page() function there as well. Also move the related definitions
from include/linux/mm.h.

Signed-off-by: Christoph Lameter <clameter@sgi.com>

---
 include/linux/mm.h      |    2 --
 include/linux/vmalloc.h |    4 ++++
 mm/memory.c             |   40 ----------------------------------------
 mm/vmalloc.c            |   38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 42 insertions(+), 42 deletions(-)

Index: linux-2.6/mm/memory.c
===================================================================
--- linux-2.6.orig/mm/memory.c	2007-09-18 18:33:56.000000000 -0700
+++ linux-2.6/mm/memory.c	2007-09-18 18:34:06.000000000 -0700
@@ -2727,46 +2727,6 @@ int make_pages_present(unsigned long add
 	return ret == len ? 0 : -1;
 }
 
-/* 
- * Map a vmalloc()-space virtual address to the physical page.
- */
-struct page * vmalloc_to_page(void * vmalloc_addr)
-{
-	unsigned long addr = (unsigned long) vmalloc_addr;
-	struct page *page = NULL;
-	pgd_t *pgd = pgd_offset_k(addr);
-	pud_t *pud;
-	pmd_t *pmd;
-	pte_t *ptep, pte;
-  
-	if (!pgd_none(*pgd)) {
-		pud = pud_offset(pgd, addr);
-		if (!pud_none(*pud)) {
-			pmd = pmd_offset(pud, addr);
-			if (!pmd_none(*pmd)) {
-				ptep = pte_offset_map(pmd, addr);
-				pte = *ptep;
-				if (pte_present(pte))
-					page = pte_page(pte);
-				pte_unmap(ptep);
-			}
-		}
-	}
-	return page;
-}
-
-EXPORT_SYMBOL(vmalloc_to_page);
-
-/*
- * Map a vmalloc()-space virtual address to the physical page frame number.
- */
-unsigned long vmalloc_to_pfn(void * vmalloc_addr)
-{
-	return page_to_pfn(vmalloc_to_page(vmalloc_addr));
-}
-
-EXPORT_SYMBOL(vmalloc_to_pfn);
-
 #if !defined(__HAVE_ARCH_GATE_AREA)
 
 #if defined(AT_SYSINFO_EHDR)
Index: linux-2.6/mm/vmalloc.c
===================================================================
--- linux-2.6.orig/mm/vmalloc.c	2007-09-18 18:33:56.000000000 -0700
+++ linux-2.6/mm/vmalloc.c	2007-09-18 18:34:06.000000000 -0700
@@ -166,6 +166,44 @@ int map_vm_area(struct vm_struct *area, 
 }
 EXPORT_SYMBOL_GPL(map_vm_area);
 
+/*
+ * Map a vmalloc()-space virtual address to the physical page.
+ */
+struct page *vmalloc_to_page(void *vmalloc_addr)
+{
+	unsigned long addr = (unsigned long) vmalloc_addr;
+	struct page *page = NULL;
+	pgd_t *pgd = pgd_offset_k(addr);
+	pud_t *pud;
+	pmd_t *pmd;
+	pte_t *ptep, pte;
+
+	if (!pgd_none(*pgd)) {
+		pud = pud_offset(pgd, addr);
+		if (!pud_none(*pud)) {
+			pmd = pmd_offset(pud, addr);
+			if (!pmd_none(*pmd)) {
+				ptep = pte_offset_map(pmd, addr);
+				pte = *ptep;
+				if (pte_present(pte))
+					page = pte_page(pte);
+				pte_unmap(ptep);
+			}
+		}
+	}
+	return page;
+}
+EXPORT_SYMBOL(vmalloc_to_page);
+
+/*
+ * Map a vmalloc()-space virtual address to the physical page frame number.
+ */
+unsigned long vmalloc_to_pfn(void *vmalloc_addr)
+{
+	return page_to_pfn(vmalloc_to_page(vmalloc_addr));
+}
+EXPORT_SYMBOL(vmalloc_to_pfn);
+
 static struct vm_struct *__get_vm_area_node(unsigned long size, unsigned long flags,
 					    unsigned long start, unsigned long end,
 					    int node, gfp_t gfp_mask)
Index: linux-2.6/include/linux/mm.h
===================================================================
--- linux-2.6.orig/include/linux/mm.h	2007-09-18 18:33:56.000000000 -0700
+++ linux-2.6/include/linux/mm.h	2007-09-18 18:34:06.000000000 -0700
@@ -1160,8 +1160,6 @@ static inline unsigned long vma_pages(st
 
 pgprot_t vm_get_page_prot(unsigned long vm_flags);
 struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
-struct page *vmalloc_to_page(void *addr);
-unsigned long vmalloc_to_pfn(void *addr);
 int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
 			unsigned long pfn, unsigned long size, pgprot_t);
 int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
Index: linux-2.6/include/linux/vmalloc.h
===================================================================
--- linux-2.6.orig/include/linux/vmalloc.h	2007-09-18 18:33:57.000000000 -0700
+++ linux-2.6/include/linux/vmalloc.h	2007-09-18 18:34:24.000000000 -0700
@@ -81,6 +81,10 @@ extern void unmap_kernel_range(unsigned 
 extern struct vm_struct *alloc_vm_area(size_t size);
 extern void free_vm_area(struct vm_struct *area);
 
+/* Determine page struct from address */
+struct page *vmalloc_to_page(void *addr);
+unsigned long vmalloc_to_pfn(void *addr);
+
 /*
  *	Internals.  Dont't use..
  */

-- 

  reply	other threads:[~2007-09-19  3:38 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-19  3:36 [00/17] [RFC] Virtual Compound Page Support Christoph Lameter
2007-09-19  3:36 ` Christoph Lameter [this message]
2007-09-19  3:36 ` [02/17] Vmalloc: add const Christoph Lameter
2007-09-19  3:36 ` [03/17] is_vmalloc_addr(): Check if an address is within the vmalloc boundaries Christoph Lameter
2007-09-19  6:32   ` David Rientjes
2007-09-19  7:24     ` Anton Altaparmakov
2007-09-19  8:09       ` David Rientjes
2007-09-19  8:44         ` Anton Altaparmakov
2007-09-19  9:19           ` David Rientjes
2007-09-19 13:23             ` Anton Altaparmakov
2007-09-19 17:29           ` Christoph Lameter
2007-09-19 17:52             ` Anton Altaparmakov
2007-09-19 17:29       ` Christoph Lameter
2007-09-19 17:52         ` Anton Altaparmakov
2007-09-19  3:36 ` [04/17] vmalloc: clean up page array indexing Christoph Lameter
2007-09-19  3:36 ` [05/17] vunmap: return page array Christoph Lameter
2007-09-19  8:05   ` KAMEZAWA Hiroyuki
2007-09-19 22:15     ` Christoph Lameter
2007-09-20  0:47       ` KAMEZAWA Hiroyuki
2007-09-19  3:36 ` [06/17] vmalloc_address(): Determine vmalloc address from page struct Christoph Lameter
2007-09-19  3:36 ` [07/17] GFP_VFALLBACK: Allow fallback of compound pages to virtual mappings Christoph Lameter
2007-09-19  3:36 ` [08/17] Pass vmalloc address in page->private Christoph Lameter
2007-09-19  3:36 ` [09/17] VFALLBACK: Debugging aid Christoph Lameter
2007-09-19  3:36 ` [10/17] Use GFP_VFALLBACK for sparsemem Christoph Lameter
2007-09-19  3:36 ` [11/17] GFP_VFALLBACK for zone wait table Christoph Lameter
2007-09-19  3:36 ` [12/17] Virtual Compound page allocation from interrupt context Christoph Lameter
2007-09-19  3:36 ` [13/17] Virtual compound page freeing in " Christoph Lameter
2007-09-18 20:36   ` Nick Piggin
2007-09-20 17:50     ` Christoph Lameter
2007-09-19  3:36 ` [14/17] Allow bit_waitqueue to wait on a bit in a vmalloc area Christoph Lameter
2007-09-19  4:12   ` Gabriel C
2007-09-19 17:40     ` Christoph Lameter
2007-09-19  3:36 ` [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK Christoph Lameter
2007-09-27 21:42   ` Nick Piggin
2007-09-28 17:33     ` Christoph Lameter
2007-09-28  5:14       ` Nick Piggin
2007-10-01 20:50         ` Christoph Lameter
2007-10-02  8:43           ` Nick Piggin
2007-10-04 16:16           ` SLUB performance regression vs SLAB Matthew Wilcox
2007-10-04 17:38             ` Christoph Lameter
2007-10-04 17:50               ` Arjan van de Ven
2007-10-04 17:58                 ` Christoph Lameter
2007-10-04 18:26                 ` Peter Zijlstra
2007-10-04 20:48                 ` David Miller
2007-10-04 20:58                   ` Matthew Wilcox
2007-10-04 21:05                     ` David Miller
2007-10-04 21:11                     ` Christoph Lameter
2007-10-04 23:39                   ` David Schwartz
2007-10-04 23:49                     ` Chuck Ebbert
2007-10-05  4:18                       ` David Schwartz
2007-10-04 18:32               ` Matthew Wilcox
2007-10-04 17:49                 ` Christoph Lameter
2007-10-04 19:28                   ` Matthew Wilcox
2007-10-04 19:05                     ` Christoph Lameter
2007-10-04 19:46                       ` Siddha, Suresh B
2007-10-04 20:55                     ` David Miller
2007-10-04 21:02                       ` Chuck Ebbert
2007-10-04 21:11                         ` David Miller
2007-10-04 21:47                           ` Chuck Ebbert
2007-10-04 22:07                             ` David Miller
2007-10-04 22:23                               ` David Chinner
2007-10-05  6:48                                 ` Jens Axboe
2007-10-05  9:19                                   ` Pekka Enberg
2007-10-05  9:28                                     ` Jens Axboe
2007-10-05 11:12                                       ` Andi Kleen
2007-10-05 12:39                                         ` Jens Axboe
2007-10-05 19:31                                           ` Christoph Lameter
2007-10-05 19:32                                             ` Christoph Lameter
2007-10-05 11:56                                   ` Matthew Wilcox
2007-10-05 12:37                                     ` Jens Axboe
2007-10-05 19:27                                     ` Christoph Lameter
2007-10-05 20:32                         ` Peter Zijlstra
2007-10-05 21:31                           ` David Miller
2007-10-04 21:05                       ` Matthew Wilcox
2007-10-05  2:43                         ` Christoph Lameter
2007-10-05  2:53                           ` Arjan van de Ven
2007-09-28 17:55       ` [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK Peter Zijlstra
2007-09-28 18:20         ` Christoph Lameter
2007-09-28 18:25           ` Peter Zijlstra
2007-09-28 18:41             ` Christoph Lameter
2007-09-28 20:22               ` Nick Piggin
2007-09-28 21:14               ` Mel Gorman
2007-09-28 20:59             ` Mel Gorman
2007-09-29  8:13             ` Andrew Morton
2007-09-29  8:47               ` Peter Zijlstra
2007-09-29  8:53                 ` Peter Zijlstra
2007-09-29  9:01                   ` Andrew Morton
2007-09-29  9:14                     ` Peter Zijlstra
2007-09-29  9:27                       ` Andrew Morton
2007-09-28 20:19                         ` Nick Piggin
2007-09-29 19:20                           ` Andrew Morton
2007-09-29 19:09                             ` Nick Piggin
2007-09-30 20:12                               ` Andrew Morton
2007-09-30  4:16                                 ` Nick Piggin
2007-09-29  9:00                 ` Andrew Morton
2007-10-01 20:55                   ` Christoph Lameter
2007-10-01 21:30                     ` Andrew Morton
2007-10-01 21:38                       ` Christoph Lameter
2007-10-01 21:45                         ` Andrew Morton
2007-10-01 21:52                           ` Christoph Lameter
2007-10-02  9:19                       ` Peter Zijlstra
2007-09-29  8:45           ` Peter Zijlstra
2007-10-01 21:01             ` Christoph Lameter
2007-10-02  8:37               ` Nick Piggin
2007-09-28 21:05       ` Mel Gorman
2007-10-01 21:10         ` Christoph Lameter
2007-09-19  3:36 ` [16/17] Allow virtual fallback for buffer_heads Christoph Lameter
2007-09-19  3:36 ` [17/17] Allow virtual fallback for dentries Christoph Lameter
2007-09-19  7:34 ` [00/17] [RFC] Virtual Compound Page Support Anton Altaparmakov
2007-09-19  8:34   ` Eric Dumazet
2007-09-19 17:33     ` Christoph Lameter
2007-09-19  8:24 ` Andi Kleen
2007-09-19 17:36   ` Christoph Lameter
  -- strict thread matches above, loose matches on Subject: below --
2007-09-25 23:42 [00/17] Virtual Compound Page Support V1 Christoph Lameter
2007-09-25 23:42 ` [01/17] Vmalloc: Move vmalloc_to_page to mm/vmalloc Christoph Lameter

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=20070919033640.547324852@sgi.com \
    --to=clameter@sgi.com \
    --cc=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mel@skynet.ie \
    /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.