projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'audit.b57' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit...
[linux-2.6-block.git]
/
mm
/
highmem.c
diff --git
a/mm/highmem.c
b/mm/highmem.c
index 35d47733cde43af70c61a996c78ef54ca5e20e02..e16e1523b688680572513b16ef0e49d5ac0314f0 100644
(file)
--- a/
mm/highmem.c
+++ b/
mm/highmem.c
@@
-40,6
+40,7
@@
#ifdef CONFIG_HIGHMEM
unsigned long totalhigh_pages __read_mostly;
#ifdef CONFIG_HIGHMEM
unsigned long totalhigh_pages __read_mostly;
+EXPORT_SYMBOL(totalhigh_pages);
unsigned int nr_free_highpages (void)
{
unsigned int nr_free_highpages (void)
{
@@
-104,8
+105,9
@@
static void flush_all_zero_pkmaps(void)
flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
}
flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
}
-/* Flush all unused kmap mappings in order to remove stray
- mappings. */
+/**
+ * kmap_flush_unused - flush all unused kmap mappings in order to remove stray mappings
+ */
void kmap_flush_unused(void)
{
spin_lock(&kmap_lock);
void kmap_flush_unused(void)
{
spin_lock(&kmap_lock);
@@
-163,6
+165,14
@@
start:
return vaddr;
}
return vaddr;
}
+/**
+ * kmap_high - map a highmem page into memory
+ * @page: &struct page to map
+ *
+ * Returns the page's virtual memory address.
+ *
+ * We cannot call this from interrupts, as it may block.
+ */
void *kmap_high(struct page *page)
{
unsigned long vaddr;
void *kmap_high(struct page *page)
{
unsigned long vaddr;
@@
-170,8
+180,6
@@
void *kmap_high(struct page *page)
/*
* For highmem pages, we can't trust "virtual" until
* after we have the lock.
/*
* For highmem pages, we can't trust "virtual" until
* after we have the lock.
- *
- * We cannot call this from interrupts, as it may block
*/
spin_lock(&kmap_lock);
vaddr = (unsigned long)page_address(page);
*/
spin_lock(&kmap_lock);
vaddr = (unsigned long)page_address(page);
@@
-185,6
+193,10
@@
void *kmap_high(struct page *page)
EXPORT_SYMBOL(kmap_high);
EXPORT_SYMBOL(kmap_high);
+/**
+ * kunmap_high - map a highmem page into memory
+ * @page: &struct page to unmap
+ */
void kunmap_high(struct page *page)
{
unsigned long vaddr;
void kunmap_high(struct page *page)
{
unsigned long vaddr;
@@
-259,6
+271,12
@@
static struct page_address_slot *page_slot(struct page *page)
return &page_address_htable[hash_ptr(page, PA_HASH_ORDER)];
}
return &page_address_htable[hash_ptr(page, PA_HASH_ORDER)];
}
+/**
+ * page_address - get the mapped virtual address of a page
+ * @page: &struct page to get the virtual address of
+ *
+ * Returns the page's virtual address.
+ */
void *page_address(struct page *page)
{
unsigned long flags;
void *page_address(struct page *page)
{
unsigned long flags;
@@
-288,6
+306,11
@@
done:
EXPORT_SYMBOL(page_address);
EXPORT_SYMBOL(page_address);
+/**
+ * set_page_address - set a page's virtual address
+ * @page: &struct page to set
+ * @virtual: virtual address to use
+ */
void set_page_address(struct page *page, void *virtual)
{
unsigned long flags;
void set_page_address(struct page *page, void *virtual)
{
unsigned long flags;