Commit 5d652eb5 authored by Linus Torvalds's avatar Linus Torvalds

Merge penguin:v2.5/linux

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 13413379 208bc495
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
* x86 doesn't need any special per-pte or * x86 doesn't need any special per-pte or
* per-vma handling.. * per-vma handling..
*/ */
#define tlb_start_vma(tlb, vma, start, end) do { } while (0) #define tlb_start_vma(tlb, vma) do { } while (0)
#define tlb_end_vma(tlb, vma, start, end) do { } while (0) #define tlb_end_vma(tlb, vma) do { } while (0)
#define tlb_remove_tlb_entry(tlb, pte, address) do { } while (0) #define tlb_remove_tlb_entry(tlb, pte, address) do { } while (0)
/* /*
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
#define tlb_start_vma(tlb, vma, start, end) \ #define tlb_start_vma(tlb, vma) \
flush_cache_range(vma, start, end) flush_cache_range(vma, vma->vm_start, vma->vm_end)
#define tlb_end_vma(tlb, vma, start, end) \ #define tlb_end_vma(tlb, vma) \
flush_tlb_range(vma, start, end) flush_tlb_range(vma, vma->vm_start, vma->vm_end)
#define tlb_remove_tlb_entry(tlb, pte, address) do { } while (0) #define tlb_remove_tlb_entry(tlb, pte, address) do { } while (0)
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/linkage.h>
#include <asm/atomic.h> #include <asm/atomic.h>
enum bh_state_bits { enum bh_state_bits {
BH_Uptodate, /* Contains valid data */ BH_Uptodate, /* Contains valid data */
BH_Dirty, /* Is dirty */ BH_Dirty, /* Is dirty */
......
...@@ -387,19 +387,18 @@ static void zap_pmd_range(mmu_gather_t *tlb, pgd_t * dir, unsigned long address, ...@@ -387,19 +387,18 @@ static void zap_pmd_range(mmu_gather_t *tlb, pgd_t * dir, unsigned long address,
void unmap_page_range(mmu_gather_t *tlb, struct vm_area_struct *vma, unsigned long address, unsigned long end) void unmap_page_range(mmu_gather_t *tlb, struct vm_area_struct *vma, unsigned long address, unsigned long end)
{ {
unsigned long start = address;
pgd_t * dir; pgd_t * dir;
if (address >= end) if (address >= end)
BUG(); BUG();
dir = pgd_offset(vma->vm_mm, address); dir = pgd_offset(vma->vm_mm, address);
tlb_start_vma(tlb, vma, start, end); tlb_start_vma(tlb, vma);
do { do {
zap_pmd_range(tlb, dir, address, end - address); zap_pmd_range(tlb, dir, address, end - address);
address = (address + PGDIR_SIZE) & PGDIR_MASK; address = (address + PGDIR_SIZE) & PGDIR_MASK;
dir++; dir++;
} while (address && (address < end)); } while (address && (address < end));
tlb_end_vma(tlb, vma, start, end); tlb_end_vma(tlb, vma);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment