diff options
author | Christoph Lameter <clameter@sgi.com> | 2006-06-25 08:46:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:00:55 -0400 |
commit | 68402ddc677005ed1b1359bbc1f279548cfc0928 (patch) | |
tree | 83da62a2b55e2ea7e0c46ed79c0d6498d36e1942 /arch | |
parent | 9f1a3cfcffaed2fbb3206179295c79ca8289f5c3 (diff) |
[PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM
Remove VM_LOCKED before remap_pfn range from device drivers and get rid of
VM_SHM.
remap_pfn_range() already sets VM_IO. There is no need to set VM_SHM since
it does nothing. VM_LOCKED is of no use since the remap_pfn_range does not
place pages on the LRU. The pages are therefore never subject to swap
anyways. Remove all the vm_flags settings before calling remap_pfn_range.
After removing all the vm_flag settings no use of VM_SHM is left. Drop it.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Acked-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/bios32.c | 1 | ||||
-rw-r--r-- | arch/cris/arch-v32/drivers/pci/bios.c | 2 | ||||
-rw-r--r-- | arch/i386/pci/i386.c | 2 | ||||
-rw-r--r-- | arch/ia64/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci_32.c | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci_64.c | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/proc_ppc64.c | 2 | ||||
-rw-r--r-- | arch/ppc/kernel/pci.c | 1 | ||||
-rw-r--r-- | arch/xtensa/kernel/pci.c | 12 |
9 files changed, 0 insertions, 25 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index de606dfa8db9..302fc1401547 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c | |||
@@ -702,7 +702,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
702 | /* | 702 | /* |
703 | * Mark this as IO | 703 | * Mark this as IO |
704 | */ | 704 | */ |
705 | vma->vm_flags |= VM_SHM | VM_LOCKED | VM_IO; | ||
706 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); | 705 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); |
707 | 706 | ||
708 | if (remap_pfn_range(vma, vma->vm_start, phys, | 707 | if (remap_pfn_range(vma, vma->vm_start, phys, |
diff --git a/arch/cris/arch-v32/drivers/pci/bios.c b/arch/cris/arch-v32/drivers/pci/bios.c index 24bc149889b6..1e9d062103ae 100644 --- a/arch/cris/arch-v32/drivers/pci/bios.c +++ b/arch/cris/arch-v32/drivers/pci/bios.c | |||
@@ -27,8 +27,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
27 | /* Leave vm_pgoff as-is, the PCI space address is the physical | 27 | /* Leave vm_pgoff as-is, the PCI space address is the physical |
28 | * address on this platform. | 28 | * address on this platform. |
29 | */ | 29 | */ |
30 | vma->vm_flags |= (VM_SHM | VM_LOCKED | VM_IO); | ||
31 | |||
32 | prot = pgprot_val(vma->vm_page_prot); | 30 | prot = pgprot_val(vma->vm_page_prot); |
33 | vma->vm_page_prot = __pgprot(prot); | 31 | vma->vm_page_prot = __pgprot(prot); |
34 | 32 | ||
diff --git a/arch/i386/pci/i386.c b/arch/i386/pci/i386.c index 7852827a599b..a151f7a99f5e 100644 --- a/arch/i386/pci/i386.c +++ b/arch/i386/pci/i386.c | |||
@@ -285,8 +285,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
285 | /* Leave vm_pgoff as-is, the PCI space address is the physical | 285 | /* Leave vm_pgoff as-is, the PCI space address is the physical |
286 | * address on this platform. | 286 | * address on this platform. |
287 | */ | 287 | */ |
288 | vma->vm_flags |= (VM_SHM | VM_LOCKED | VM_IO); | ||
289 | |||
290 | prot = pgprot_val(vma->vm_page_prot); | 288 | prot = pgprot_val(vma->vm_page_prot); |
291 | if (boot_cpu_data.x86 > 3) | 289 | if (boot_cpu_data.x86 > 3) |
292 | prot |= _PAGE_PCD | _PAGE_PWT; | 290 | prot |= _PAGE_PCD | _PAGE_PWT; |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 61dd8608da4f..77375a55da31 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -602,8 +602,6 @@ pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, | |||
602 | * Leave vm_pgoff as-is, the PCI space address is the physical | 602 | * Leave vm_pgoff as-is, the PCI space address is the physical |
603 | * address on this platform. | 603 | * address on this platform. |
604 | */ | 604 | */ |
605 | vma->vm_flags |= (VM_SHM | VM_RESERVED | VM_IO); | ||
606 | |||
607 | if (write_combine && efi_range_is_wc(vma->vm_start, | 605 | if (write_combine && efi_range_is_wc(vma->vm_start, |
608 | vma->vm_end - vma->vm_start)) | 606 | vma->vm_end - vma->vm_start)) |
609 | vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); | 607 | vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); |
@@ -666,7 +664,6 @@ pci_mmap_legacy_page_range(struct pci_bus *bus, struct vm_area_struct *vma) | |||
666 | 664 | ||
667 | vma->vm_pgoff += (unsigned long)addr >> PAGE_SHIFT; | 665 | vma->vm_pgoff += (unsigned long)addr >> PAGE_SHIFT; |
668 | vma->vm_page_prot = prot; | 666 | vma->vm_page_prot = prot; |
669 | vma->vm_flags |= (VM_SHM | VM_RESERVED | VM_IO); | ||
670 | 667 | ||
671 | if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, | 668 | if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, |
672 | size, vma->vm_page_prot)) | 669 | size, vma->vm_page_prot)) |
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index c858eb4bef17..b5431ccf1147 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -1654,7 +1654,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
1654 | return -EINVAL; | 1654 | return -EINVAL; |
1655 | 1655 | ||
1656 | vma->vm_pgoff = offset >> PAGE_SHIFT; | 1656 | vma->vm_pgoff = offset >> PAGE_SHIFT; |
1657 | vma->vm_flags |= VM_SHM | VM_LOCKED | VM_IO; | ||
1658 | vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp, | 1657 | vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp, |
1659 | vma->vm_page_prot, | 1658 | vma->vm_page_prot, |
1660 | mmap_state, write_combine); | 1659 | mmap_state, write_combine); |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 5ad87c426bed..247937dd8b73 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -877,7 +877,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
877 | return -EINVAL; | 877 | return -EINVAL; |
878 | 878 | ||
879 | vma->vm_pgoff = offset >> PAGE_SHIFT; | 879 | vma->vm_pgoff = offset >> PAGE_SHIFT; |
880 | vma->vm_flags |= VM_SHM | VM_LOCKED | VM_IO; | ||
881 | vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp, | 880 | vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp, |
882 | vma->vm_page_prot, | 881 | vma->vm_page_prot, |
883 | mmap_state, write_combine); | 882 | mmap_state, write_combine); |
diff --git a/arch/powerpc/kernel/proc_ppc64.c b/arch/powerpc/kernel/proc_ppc64.c index 2b87f82df135..2ab8f2be911e 100644 --- a/arch/powerpc/kernel/proc_ppc64.c +++ b/arch/powerpc/kernel/proc_ppc64.c | |||
@@ -115,8 +115,6 @@ static int page_map_mmap( struct file *file, struct vm_area_struct *vma ) | |||
115 | { | 115 | { |
116 | struct proc_dir_entry *dp = PDE(file->f_dentry->d_inode); | 116 | struct proc_dir_entry *dp = PDE(file->f_dentry->d_inode); |
117 | 117 | ||
118 | vma->vm_flags |= VM_SHM | VM_LOCKED; | ||
119 | |||
120 | if ((vma->vm_end - vma->vm_start) > dp->size) | 118 | if ((vma->vm_end - vma->vm_start) > dp->size) |
121 | return -EINVAL; | 119 | return -EINVAL; |
122 | 120 | ||
diff --git a/arch/ppc/kernel/pci.c b/arch/ppc/kernel/pci.c index 809673a36f7a..d20accf9650d 100644 --- a/arch/ppc/kernel/pci.c +++ b/arch/ppc/kernel/pci.c | |||
@@ -1032,7 +1032,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
1032 | return -EINVAL; | 1032 | return -EINVAL; |
1033 | 1033 | ||
1034 | vma->vm_pgoff = offset >> PAGE_SHIFT; | 1034 | vma->vm_pgoff = offset >> PAGE_SHIFT; |
1035 | vma->vm_flags |= VM_SHM | VM_LOCKED | VM_IO; | ||
1036 | vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp, | 1035 | vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp, |
1037 | vma->vm_page_prot, | 1036 | vma->vm_page_prot, |
1038 | mmap_state, write_combine); | 1037 | mmap_state, write_combine); |
diff --git a/arch/xtensa/kernel/pci.c b/arch/xtensa/kernel/pci.c index de19501aa809..c6f471b9eaa0 100644 --- a/arch/xtensa/kernel/pci.c +++ b/arch/xtensa/kernel/pci.c | |||
@@ -350,17 +350,6 @@ __pci_mmap_make_offset(struct pci_dev *dev, struct vm_area_struct *vma, | |||
350 | } | 350 | } |
351 | 351 | ||
352 | /* | 352 | /* |
353 | * Set vm_flags of VMA, as appropriate for this architecture, for a pci device | ||
354 | * mapping. | ||
355 | */ | ||
356 | static __inline__ void | ||
357 | __pci_mmap_set_flags(struct pci_dev *dev, struct vm_area_struct *vma, | ||
358 | enum pci_mmap_state mmap_state) | ||
359 | { | ||
360 | vma->vm_flags |= VM_SHM | VM_LOCKED | VM_IO; | ||
361 | } | ||
362 | |||
363 | /* | ||
364 | * Set vm_page_prot of VMA, as appropriate for this architecture, for a pci | 353 | * Set vm_page_prot of VMA, as appropriate for this architecture, for a pci |
365 | * device mapping. | 354 | * device mapping. |
366 | */ | 355 | */ |
@@ -399,7 +388,6 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
399 | if (ret < 0) | 388 | if (ret < 0) |
400 | return ret; | 389 | return ret; |
401 | 390 | ||
402 | __pci_mmap_set_flags(dev, vma, mmap_state); | ||
403 | __pci_mmap_set_pgprot(dev, vma, mmap_state, write_combine); | 391 | __pci_mmap_set_pgprot(dev, vma, mmap_state, write_combine); |
404 | 392 | ||
405 | ret = io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, | 393 | ret = io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, |