]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - mm/highmem.c
Merge branch 'cleanup' into for-next
[karo-tx-linux.git] / mm / highmem.c
index 57d82c6250c308e36089f81a8e902b729391335e..d517cd16a6eb91e8df18f3cbd79cd67621b27d3f 100644 (file)
@@ -94,6 +94,18 @@ static DECLARE_WAIT_QUEUE_HEAD(pkmap_map_wait);
                do { spin_unlock(&kmap_lock); (void)(flags); } while (0)
 #endif
 
+struct page *kmap_to_page(void *vaddr)
+{
+       unsigned long addr = (unsigned long)vaddr;
+
+       if (addr >= PKMAP_ADDR(0) && addr <= PKMAP_ADDR(LAST_PKMAP)) {
+               int i = (addr - PKMAP_ADDR(0)) >> PAGE_SHIFT;
+               return pte_page(pkmap_page_table[i]);
+       }
+
+       return virt_to_page(addr);
+}
+
 static void flush_all_zero_pkmaps(void)
 {
        int i;