diff for duplicates of <20071112015643.GA9291@wotan.suse.de> diff --git a/a/1.txt b/N1/1.txt index cd77757..62222f3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -61,7 +61,8 @@ take a look at this all together, the discussion will be more coherent ;) 24 files changed, 238 insertions(+), 359 deletions(-) Index: linux-2.6/include/linux/mm.h -=================================--- linux-2.6.orig/include/linux/mm.h +=================================================================== +--- linux-2.6.orig/include/linux/mm.h +++ linux-2.6/include/linux/mm.h @@ -162,8 +162,6 @@ struct vm_operations_struct { void (*open)(struct vm_area_struct * area); @@ -86,7 +87,8 @@ Index: linux-2.6/include/linux/mm.h */ #define NOPFN_SIGBUS ((unsigned long) -1) Index: linux-2.6/kernel/relay.c -=================================--- linux-2.6.orig/kernel/relay.c +=================================================================== +--- linux-2.6.orig/kernel/relay.c +++ linux-2.6/kernel/relay.c @@ -37,37 +37,31 @@ static void relay_file_mmap_close(struct } @@ -136,7 +138,8 @@ Index: linux-2.6/kernel/relay.c }; Index: linux-2.6/mm/memory.c -=================================--- linux-2.6.orig/mm/memory.c +=================================================================== +--- linux-2.6.orig/mm/memory.c +++ linux-2.6/mm/memory.c @@ -1044,8 +1044,7 @@ int get_user_pages(struct task_struct *t if (pages) @@ -161,9 +164,9 @@ Index: linux-2.6/mm/memory.c - ret = 0; - vmf.page = vma->vm_ops->nopage(vma, address & PAGE_MASK, &ret); - /* no page was available -- either SIGBUS or OOM */ -- if (unlikely(vmf.page = NOPAGE_SIGBUS)) +- if (unlikely(vmf.page == NOPAGE_SIGBUS)) - return VM_FAULT_SIGBUS; -- else if (unlikely(vmf.page = NOPAGE_OOM)) +- else if (unlikely(vmf.page == NOPAGE_OOM)) - return VM_FAULT_OOM; - } + ret = vma->vm_ops->fault(vma, &vmf); @@ -182,7 +185,8 @@ Index: linux-2.6/mm/memory.c pte, pmd, write_access, entry); if (unlikely(vma->vm_ops->nopfn)) Index: linux-2.6/mm/mincore.c -=================================--- linux-2.6.orig/mm/mincore.c +=================================================================== +--- linux-2.6.orig/mm/mincore.c +++ linux-2.6/mm/mincore.c @@ -33,7 +33,7 @@ static unsigned char mincore_page(struct * When tmpfs swaps out a page from a file, any process mapping that @@ -194,7 +198,8 @@ Index: linux-2.6/mm/mincore.c * However when tmpfs moves the page from pagecache and into swapcache, * it is still in core, but the find_get_page below won't find it. Index: linux-2.6/mm/mmap.c -=================================--- linux-2.6.orig/mm/mmap.c +=================================================================== +--- linux-2.6.orig/mm/mmap.c +++ linux-2.6/mm/mmap.c @@ -2149,24 +2149,23 @@ int may_expand_vm(struct mm_struct *mm, } @@ -239,7 +244,8 @@ Index: linux-2.6/mm/mmap.c /* Index: linux-2.6/arch/ia64/ia32/binfmt_elf32.c -=================================--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c +=================================================================== +--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c +++ linux-2.6/arch/ia64/ia32/binfmt_elf32.c @@ -52,33 +52,29 @@ extern struct page *ia32_shared_page[]; extern unsigned long *ia32_gdt; @@ -291,7 +297,8 @@ Index: linux-2.6/arch/ia64/ia32/binfmt_elf32.c void Index: linux-2.6/drivers/char/agp/alpha-agp.c -=================================--- linux-2.6.orig/drivers/char/agp/alpha-agp.c +=================================================================== +--- linux-2.6.orig/drivers/char/agp/alpha-agp.c +++ linux-2.6/drivers/char/agp/alpha-agp.c @@ -11,29 +11,28 @@ @@ -313,7 +320,7 @@ Index: linux-2.6/drivers/char/agp/alpha-agp.c + + agp->aperture.bus_base; pa = agp->ops->translate(agp, dma_addr); - if (pa = (unsigned long)-EINVAL) + if (pa == (unsigned long)-EINVAL) - return NULL; /* no translation */ + return VM_FAULT_SIGBUS; /* no translation */ @@ -329,7 +336,8 @@ Index: linux-2.6/drivers/char/agp/alpha-agp.c + return 0; } - static struct aper_size_info_fixed alpha_core_agp_sizes[] @@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha + static struct aper_size_info_fixed alpha_core_agp_sizes[] = +@@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha }; struct vm_operations_struct alpha_core_agp_vm_ops = { @@ -339,7 +347,8 @@ Index: linux-2.6/drivers/char/agp/alpha-agp.c Index: linux-2.6/drivers/char/drm/drm_vm.c -=================================--- linux-2.6.orig/drivers/char/drm/drm_vm.c +=================================================================== +--- linux-2.6.orig/drivers/char/drm/drm_vm.c +++ linux-2.6/drivers/char/drm/drm_vm.c @@ -66,7 +66,7 @@ static pgprot_t drm_io_prot(uint32_t map } @@ -379,7 +388,7 @@ Index: linux-2.6/drivers/char/drm/drm_vm.c r_list = drm_hash_entry(hash, struct drm_map_list, hash); map = r_list->map; - if (map && map->type = _DRM_AGP) { + if (map && map->type == _DRM_AGP) { - unsigned long offset = address - vma->vm_start; + /* + * Using vm_pgoff as a selector forces us to use this unusual @@ -650,7 +659,8 @@ Index: linux-2.6/drivers/char/drm/drm_vm.c page_to_pfn(virt_to_page(map->handle)), vma->vm_end - vma->vm_start, vma->vm_page_prot)) Index: linux-2.6/drivers/ieee1394/dma.c -=================================--- linux-2.6.orig/drivers/ieee1394/dma.c +=================================================================== +--- linux-2.6.orig/drivers/ieee1394/dma.c +++ linux-2.6/drivers/ieee1394/dma.c @@ -231,37 +231,32 @@ void dma_region_sync_for_device(struct d @@ -716,7 +726,8 @@ Index: linux-2.6/drivers/ieee1394/dma.c return -EINVAL; Index: linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c -=================================--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c +=================================================================== +--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c +++ linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c @@ -1120,33 +1120,24 @@ bail: } @@ -763,7 +774,8 @@ Index: linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr, Index: linux-2.6/drivers/kvm/kvm_main.c -=================================--- linux-2.6.orig/drivers/kvm/kvm_main.c +=================================================================== +--- linux-2.6.orig/drivers/kvm/kvm_main.c +++ linux-2.6/drivers/kvm/kvm_main.c @@ -2534,30 +2534,24 @@ static int kvm_vcpu_ioctl_debug_guest(st return r; @@ -779,11 +791,11 @@ Index: linux-2.6/drivers/kvm/kvm_main.c struct page *page; - pgoff = ((address - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; -- if (pgoff = 0) -+ if (vmf->pgoff = 0) +- if (pgoff == 0) ++ if (vmf->pgoff == 0) page = virt_to_page(vcpu->run); -- else if (pgoff = KVM_PIO_PAGE_OFFSET) -+ else if (vmf->pgoff = KVM_PIO_PAGE_OFFSET) +- else if (pgoff == KVM_PIO_PAGE_OFFSET) ++ else if (vmf->pgoff == KVM_PIO_PAGE_OFFSET) page = virt_to_page(vcpu->pio_data); else - return NOPAGE_SIGBUS; @@ -838,7 +850,8 @@ Index: linux-2.6/drivers/kvm/kvm_main.c static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma) Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c -=================================--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c +=================================================================== +--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c +++ linux-2.6/drivers/media/video/videobuf-dma-sg.c @@ -385,30 +385,26 @@ videobuf_vm_close(struct vm_area_struct * now ...). Bounce buffers don't work very well for the data rates @@ -870,7 +883,8 @@ Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c + return 0; } - static struct vm_operations_struct videobuf_vm_ops { + static struct vm_operations_struct videobuf_vm_ops = + { .open = videobuf_vm_open, .close = videobuf_vm_close, - .nopage = videobuf_vm_nopage, @@ -879,7 +893,8 @@ Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c /* --------------------------------------------------------------------- Index: linux-2.6/drivers/scsi/sg.c -=================================--- linux-2.6.orig/drivers/scsi/sg.c +=================================================================== +--- linux-2.6.orig/drivers/scsi/sg.c +++ linux-2.6/drivers/scsi/sg.c @@ -1144,23 +1144,22 @@ sg_fasync(int fd, struct file *filp, int return (retval < 0) ? retval : 0; @@ -897,7 +912,7 @@ Index: linux-2.6/drivers/scsi/sg.c struct scatterlist *sg; int k; - if ((NULL = vma) || (!(sfp = (Sg_fd *) vma->vm_private_data))) + if ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data))) - return page; + return VM_FAULT_SIGBUS; rsv_schp = &sfp->reserve; @@ -939,7 +954,8 @@ Index: linux-2.6/drivers/scsi/sg.c static int Index: linux-2.6/drivers/usb/mon/mon_bin.c -=================================--- linux-2.6.orig/drivers/usb/mon/mon_bin.c +=================================================================== +--- linux-2.6.orig/drivers/usb/mon/mon_bin.c +++ linux-2.6/drivers/usb/mon/mon_bin.c @@ -1045,33 +1045,31 @@ static void mon_bin_vma_close(struct vm_ /* @@ -983,7 +999,8 @@ Index: linux-2.6/drivers/usb/mon/mon_bin.c vma->vm_flags |= VM_RESERVED; vma->vm_private_data = filp->private_data; Index: linux-2.6/drivers/video/fb_defio.c -=================================--- linux-2.6.orig/drivers/video/fb_defio.c +=================================================================== +--- linux-2.6.orig/drivers/video/fb_defio.c +++ linux-2.6/drivers/video/fb_defio.c @@ -25,8 +25,8 @@ #include <linux/pagemap.h> @@ -1030,7 +1047,8 @@ Index: linux-2.6/drivers/video/fb_defio.c }; Index: linux-2.6/sound/core/pcm_native.c -=================================--- linux-2.6.orig/sound/core/pcm_native.c +=================================================================== +--- linux-2.6.orig/sound/core/pcm_native.c +++ linux-2.6/sound/core/pcm_native.c @@ -3018,26 +3018,23 @@ static unsigned int snd_pcm_capture_poll /* @@ -1045,7 +1063,7 @@ Index: linux-2.6/sound/core/pcm_native.c struct snd_pcm_runtime *runtime; - struct page * page; - if (substream = NULL) + if (substream == NULL) - return NOPAGE_SIGBUS; + return VM_FAULT_SIGBUS; runtime = substream->runtime; @@ -1059,7 +1077,8 @@ Index: linux-2.6/sound/core/pcm_native.c + return 0; } - static struct vm_operations_struct snd_pcm_vm_ops_status { + static struct vm_operations_struct snd_pcm_vm_ops_status = + { - .nopage = snd_pcm_mmap_status_nopage, + .fault = snd_pcm_mmap_status_fault, }; @@ -1078,7 +1097,7 @@ Index: linux-2.6/sound/core/pcm_native.c struct snd_pcm_runtime *runtime; - struct page * page; - if (substream = NULL) + if (substream == NULL) - return NOPAGE_SIGBUS; + return VM_FAULT_SIGBUS; runtime = substream->runtime; @@ -1092,7 +1111,8 @@ Index: linux-2.6/sound/core/pcm_native.c + return 0; } - static struct vm_operations_struct snd_pcm_vm_ops_control { + static struct vm_operations_struct snd_pcm_vm_ops_control = + { - .nopage = snd_pcm_mmap_control_nopage, + .fault = snd_pcm_mmap_control_fault, }; @@ -1115,13 +1135,13 @@ Index: linux-2.6/sound/core/pcm_native.c @@ -3130,33 +3124,30 @@ static struct page *snd_pcm_mmap_data_no size_t dma_bytes; - if (substream = NULL) + if (substream == NULL) - return NOPAGE_SIGBUS; + return VM_FAULT_SIGBUS; runtime = substream->runtime; - offset = area->vm_pgoff << PAGE_SHIFT; - offset += address - area->vm_start; -- snd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS); +- snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS); + offset = vmf->pgoff << PAGE_SHIFT; dma_bytes = PAGE_ALIGN(runtime->dma_bytes); if (offset > dma_bytes - PAGE_SIZE) @@ -1145,7 +1165,8 @@ Index: linux-2.6/sound/core/pcm_native.c + return 0; } - static struct vm_operations_struct snd_pcm_vm_ops_data { + static struct vm_operations_struct snd_pcm_vm_ops_data = + { .open = snd_pcm_mmap_data_open, .close = snd_pcm_mmap_data_close, - .nopage = snd_pcm_mmap_data_nopage, @@ -1154,7 +1175,8 @@ Index: linux-2.6/sound/core/pcm_native.c /* Index: linux-2.6/sound/oss/via82cxxx_audio.c -=================================--- linux-2.6.orig/sound/oss/via82cxxx_audio.c +=================================================================== +--- linux-2.6.orig/sound/oss/via82cxxx_audio.c +++ linux-2.6/sound/oss/via82cxxx_audio.c @@ -2099,8 +2099,7 @@ static void via_dsp_cleanup (struct via_ } @@ -1207,7 +1229,8 @@ Index: linux-2.6/sound/oss/via82cxxx_audio.c Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c -=================================--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c +=================================================================== +--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c +++ linux-2.6/sound/usb/usx2y/usX2Yhwdep.c @@ -34,34 +34,29 @@ int usX2Y_hwdep_pcm_new(struct snd_card *card); @@ -1230,7 +1253,7 @@ Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c - offset = area->vm_pgoff << PAGE_SHIFT; - offset += address - area->vm_start; -- snd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS); +- snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS); + offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); @@ -1253,7 +1276,8 @@ Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c static int snd_us428ctls_mmap(struct snd_hwdep * hw, struct file *filp, struct vm_area_struct *area) Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c -=================================--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c +=================================================================== +--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c +++ linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c @@ -683,30 +683,23 @@ static void snd_usX2Y_hwdep_pcm_vm_close } @@ -1268,7 +1292,7 @@ Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c - offset = area->vm_pgoff << PAGE_SHIFT; - offset += address - area->vm_start; -- snd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_OOM); +- snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM); + offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->hwdep_pcm_shm + offset; - page = virt_to_page(vaddr); @@ -1293,7 +1317,8 @@ Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c Index: linux-2.6/Documentation/fb/deferred_io.txt -=================================--- linux-2.6.orig/Documentation/fb/deferred_io.txt +=================================================================== +--- linux-2.6.orig/Documentation/fb/deferred_io.txt +++ linux-2.6/Documentation/fb/deferred_io.txt @@ -7,10 +7,10 @@ IO. The following example may be a usefu works: @@ -1310,7 +1335,8 @@ Index: linux-2.6/Documentation/fb/deferred_io.txt - schedule a workqueue task to be run after a delay - app continues writing to that page with no additional cost. this is Index: linux-2.6/Documentation/feature-removal-schedule.txt -=================================--- linux-2.6.orig/Documentation/feature-removal-schedule.txt +=================================================================== +--- linux-2.6.orig/Documentation/feature-removal-schedule.txt +++ linux-2.6/Documentation/feature-removal-schedule.txt @@ -172,15 +172,6 @@ Who: Greg Kroah-Hartman <gregkh@suse.de> @@ -1329,7 +1355,8 @@ Index: linux-2.6/Documentation/feature-removal-schedule.txt When: September 2007 Why: The interrupt related SA_* flags are replaced by IRQF_* to move them Index: linux-2.6/Documentation/filesystems/Locking -=================================--- linux-2.6.orig/Documentation/filesystems/Locking +=================================================================== +--- linux-2.6.orig/Documentation/filesystems/Locking +++ linux-2.6/Documentation/filesystems/Locking @@ -514,7 +514,6 @@ prototypes: void (*open)(struct vm_area_struct*); @@ -1353,7 +1380,8 @@ Index: linux-2.6/Documentation/filesystems/Locking ->read() and ->write() in many drivers are (probably) missing BKL. -drivers/sgi/char/graphics.c::sgi_graphics_nopage() - may need BKL. Index: linux-2.6/mm/rmap.c -=================================--- linux-2.6.orig/mm/rmap.c +=================================================================== +--- linux-2.6.orig/mm/rmap.c +++ linux-2.6/mm/rmap.c @@ -621,7 +621,6 @@ void page_remove_rmap(struct page *page, printk (KERN_EMERG " page->mapping = %p\n", page->mapping); @@ -1364,7 +1392,8 @@ Index: linux-2.6/mm/rmap.c } if (vma->vm_file && vma->vm_file->f_op) Index: linux-2.6/drivers/uio/uio.c -=================================--- linux-2.6.orig/drivers/uio/uio.c +=================================================================== +--- linux-2.6.orig/drivers/uio/uio.c +++ linux-2.6/drivers/uio/uio.c @@ -412,30 +412,28 @@ static void uio_vma_close(struct vm_area idev->vma_count--; @@ -1383,7 +1412,7 @@ Index: linux-2.6/drivers/uio/uio.c - return page; + return VM_FAULT_SIGBUS; - if (idev->info->mem[mi].memtype = UIO_MEM_LOGICAL) + if (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL) page = virt_to_page(idev->info->mem[mi].addr); else page = vmalloc_to_page((void*)idev->info->mem[mi].addr); diff --git a/a/content_digest b/N1/content_digest index f7855f3..81e15e7 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,6 +1,6 @@ "From\0Nick Piggin <npiggin@suse.de>\0" "Subject\0[rfc][patch] remove nopage\0" - "Date\0Mon, 12 Nov 2007 01:56:43 +0000\0" + "Date\0Mon, 12 Nov 2007 02:56:43 +0100\0" "To\0Linus Torvalds <torvalds@linux-foundation.org>" Linux Memory Management List <linux-mm@kvack.org> " Linux Kernel Mailing List <linux-kernel@vger.kernel.org>\0" @@ -87,7 +87,8 @@ " 24 files changed, 238 insertions(+), 359 deletions(-)\n" "\n" "Index: linux-2.6/include/linux/mm.h\n" - "=================================--- linux-2.6.orig/include/linux/mm.h\n" + "===================================================================\n" + "--- linux-2.6.orig/include/linux/mm.h\n" "+++ linux-2.6/include/linux/mm.h\n" "@@ -162,8 +162,6 @@ struct vm_operations_struct {\n" " \tvoid (*open)(struct vm_area_struct * area);\n" @@ -112,7 +113,8 @@ " */\n" " #define NOPFN_SIGBUS\t((unsigned long) -1)\n" "Index: linux-2.6/kernel/relay.c\n" - "=================================--- linux-2.6.orig/kernel/relay.c\n" + "===================================================================\n" + "--- linux-2.6.orig/kernel/relay.c\n" "+++ linux-2.6/kernel/relay.c\n" "@@ -37,37 +37,31 @@ static void relay_file_mmap_close(struct\n" " }\n" @@ -162,7 +164,8 @@ " };\n" " \n" "Index: linux-2.6/mm/memory.c\n" - "=================================--- linux-2.6.orig/mm/memory.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/memory.c\n" "+++ linux-2.6/mm/memory.c\n" "@@ -1044,8 +1044,7 @@ int get_user_pages(struct task_struct *t\n" " \t\tif (pages)\n" @@ -187,9 +190,9 @@ "-\t\tret = 0;\n" "-\t\tvmf.page = vma->vm_ops->nopage(vma, address & PAGE_MASK, &ret);\n" "-\t\t/* no page was available -- either SIGBUS or OOM */\n" - "-\t\tif (unlikely(vmf.page = NOPAGE_SIGBUS))\n" + "-\t\tif (unlikely(vmf.page == NOPAGE_SIGBUS))\n" "-\t\t\treturn VM_FAULT_SIGBUS;\n" - "-\t\telse if (unlikely(vmf.page = NOPAGE_OOM))\n" + "-\t\telse if (unlikely(vmf.page == NOPAGE_OOM))\n" "-\t\t\treturn VM_FAULT_OOM;\n" "-\t}\n" "+\tret = vma->vm_ops->fault(vma, &vmf);\n" @@ -208,7 +211,8 @@ " \t\t\t\t\t\tpte, pmd, write_access, entry);\n" " \t\t\t\tif (unlikely(vma->vm_ops->nopfn))\n" "Index: linux-2.6/mm/mincore.c\n" - "=================================--- linux-2.6.orig/mm/mincore.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/mincore.c\n" "+++ linux-2.6/mm/mincore.c\n" "@@ -33,7 +33,7 @@ static unsigned char mincore_page(struct\n" " \t * When tmpfs swaps out a page from a file, any process mapping that\n" @@ -220,7 +224,8 @@ " \t * However when tmpfs moves the page from pagecache and into swapcache,\n" " \t * it is still in core, but the find_get_page below won't find it.\n" "Index: linux-2.6/mm/mmap.c\n" - "=================================--- linux-2.6.orig/mm/mmap.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/mmap.c\n" "+++ linux-2.6/mm/mmap.c\n" "@@ -2149,24 +2149,23 @@ int may_expand_vm(struct mm_struct *mm, \n" " }\n" @@ -265,7 +270,8 @@ " \n" " /*\n" "Index: linux-2.6/arch/ia64/ia32/binfmt_elf32.c\n" - "=================================--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c\n" + "===================================================================\n" + "--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c\n" "+++ linux-2.6/arch/ia64/ia32/binfmt_elf32.c\n" "@@ -52,33 +52,29 @@ extern struct page *ia32_shared_page[];\n" " extern unsigned long *ia32_gdt;\n" @@ -317,7 +323,8 @@ " \n" " void\n" "Index: linux-2.6/drivers/char/agp/alpha-agp.c\n" - "=================================--- linux-2.6.orig/drivers/char/agp/alpha-agp.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/char/agp/alpha-agp.c\n" "+++ linux-2.6/drivers/char/agp/alpha-agp.c\n" "@@ -11,29 +11,28 @@\n" " \n" @@ -339,7 +346,7 @@ "+\t\t\t\t\t\t+ agp->aperture.bus_base;\n" " \tpa = agp->ops->translate(agp, dma_addr);\n" " \n" - " \tif (pa = (unsigned long)-EINVAL)\n" + " \tif (pa == (unsigned long)-EINVAL)\n" "-\t\treturn NULL;\t/* no translation */\n" "+\t\treturn VM_FAULT_SIGBUS;\t/* no translation */\n" " \n" @@ -355,7 +362,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct aper_size_info_fixed alpha_core_agp_sizes[] @@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha\n" + " static struct aper_size_info_fixed alpha_core_agp_sizes[] =\n" + "@@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha\n" " };\n" " \n" " struct vm_operations_struct alpha_core_agp_vm_ops = {\n" @@ -365,7 +373,8 @@ " \n" " \n" "Index: linux-2.6/drivers/char/drm/drm_vm.c\n" - "=================================--- linux-2.6.orig/drivers/char/drm/drm_vm.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/char/drm/drm_vm.c\n" "+++ linux-2.6/drivers/char/drm/drm_vm.c\n" "@@ -66,7 +66,7 @@ static pgprot_t drm_io_prot(uint32_t map\n" " }\n" @@ -405,7 +414,7 @@ " \tr_list = drm_hash_entry(hash, struct drm_map_list, hash);\n" " \tmap = r_list->map;\n" " \n" - " \tif (map && map->type = _DRM_AGP) {\n" + " \tif (map && map->type == _DRM_AGP) {\n" "-\t\tunsigned long offset = address - vma->vm_start;\n" "+\t\t/*\n" "+\t\t * Using vm_pgoff as a selector forces us to use this unusual\n" @@ -676,7 +685,8 @@ " \t\t page_to_pfn(virt_to_page(map->handle)),\n" " \t\t vma->vm_end - vma->vm_start, vma->vm_page_prot))\n" "Index: linux-2.6/drivers/ieee1394/dma.c\n" - "=================================--- linux-2.6.orig/drivers/ieee1394/dma.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/ieee1394/dma.c\n" "+++ linux-2.6/drivers/ieee1394/dma.c\n" "@@ -231,37 +231,32 @@ void dma_region_sync_for_device(struct d\n" " \n" @@ -742,7 +752,8 @@ " \t\treturn -EINVAL;\n" " \n" "Index: linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" - "=================================--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" "+++ linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" "@@ -1120,33 +1120,24 @@ bail:\n" " }\n" @@ -789,7 +800,8 @@ " \n" " static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr,\n" "Index: linux-2.6/drivers/kvm/kvm_main.c\n" - "=================================--- linux-2.6.orig/drivers/kvm/kvm_main.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/kvm/kvm_main.c\n" "+++ linux-2.6/drivers/kvm/kvm_main.c\n" "@@ -2534,30 +2534,24 @@ static int kvm_vcpu_ioctl_debug_guest(st\n" " \treturn r;\n" @@ -805,11 +817,11 @@ " \tstruct page *page;\n" " \n" "-\tpgoff = ((address - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;\n" - "-\tif (pgoff = 0)\n" - "+\tif (vmf->pgoff = 0)\n" + "-\tif (pgoff == 0)\n" + "+\tif (vmf->pgoff == 0)\n" " \t\tpage = virt_to_page(vcpu->run);\n" - "-\telse if (pgoff = KVM_PIO_PAGE_OFFSET)\n" - "+\telse if (vmf->pgoff = KVM_PIO_PAGE_OFFSET)\n" + "-\telse if (pgoff == KVM_PIO_PAGE_OFFSET)\n" + "+\telse if (vmf->pgoff == KVM_PIO_PAGE_OFFSET)\n" " \t\tpage = virt_to_page(vcpu->pio_data);\n" " \telse\n" "-\t\treturn NOPAGE_SIGBUS;\n" @@ -864,7 +876,8 @@ " \n" " static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma)\n" "Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c\n" - "=================================--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c\n" "+++ linux-2.6/drivers/media/video/videobuf-dma-sg.c\n" "@@ -385,30 +385,26 @@ videobuf_vm_close(struct vm_area_struct \n" " * now ...). Bounce buffers don't work very well for the data rates\n" @@ -896,7 +909,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct videobuf_vm_ops {\n" + " static struct vm_operations_struct videobuf_vm_ops =\n" + " {\n" " \t.open = videobuf_vm_open,\n" " \t.close = videobuf_vm_close,\n" "-\t.nopage = videobuf_vm_nopage,\n" @@ -905,7 +919,8 @@ " \n" " /* ---------------------------------------------------------------------\n" "Index: linux-2.6/drivers/scsi/sg.c\n" - "=================================--- linux-2.6.orig/drivers/scsi/sg.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/scsi/sg.c\n" "+++ linux-2.6/drivers/scsi/sg.c\n" "@@ -1144,23 +1144,22 @@ sg_fasync(int fd, struct file *filp, int\n" " \treturn (retval < 0) ? retval : 0;\n" @@ -923,7 +938,7 @@ " \tstruct scatterlist *sg;\n" " \tint k;\n" " \n" - " \tif ((NULL = vma) || (!(sfp = (Sg_fd *) vma->vm_private_data)))\n" + " \tif ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data)))\n" "-\t\treturn page;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \trsv_schp = &sfp->reserve;\n" @@ -965,7 +980,8 @@ " \n" " static int\n" "Index: linux-2.6/drivers/usb/mon/mon_bin.c\n" - "=================================--- linux-2.6.orig/drivers/usb/mon/mon_bin.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/usb/mon/mon_bin.c\n" "+++ linux-2.6/drivers/usb/mon/mon_bin.c\n" "@@ -1045,33 +1045,31 @@ static void mon_bin_vma_close(struct vm_\n" " /*\n" @@ -1009,7 +1025,8 @@ " \tvma->vm_flags |= VM_RESERVED;\n" " \tvma->vm_private_data = filp->private_data;\n" "Index: linux-2.6/drivers/video/fb_defio.c\n" - "=================================--- linux-2.6.orig/drivers/video/fb_defio.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/video/fb_defio.c\n" "+++ linux-2.6/drivers/video/fb_defio.c\n" "@@ -25,8 +25,8 @@\n" " #include <linux/pagemap.h>\n" @@ -1056,7 +1073,8 @@ " };\n" " \n" "Index: linux-2.6/sound/core/pcm_native.c\n" - "=================================--- linux-2.6.orig/sound/core/pcm_native.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/core/pcm_native.c\n" "+++ linux-2.6/sound/core/pcm_native.c\n" "@@ -3018,26 +3018,23 @@ static unsigned int snd_pcm_capture_poll\n" " /*\n" @@ -1071,7 +1089,7 @@ " \tstruct snd_pcm_runtime *runtime;\n" "-\tstruct page * page;\n" " \t\n" - " \tif (substream = NULL)\n" + " \tif (substream == NULL)\n" "-\t\treturn NOPAGE_SIGBUS;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \truntime = substream->runtime;\n" @@ -1085,7 +1103,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct snd_pcm_vm_ops_status {\n" + " static struct vm_operations_struct snd_pcm_vm_ops_status =\n" + " {\n" "-\t.nopage =\tsnd_pcm_mmap_status_nopage,\n" "+\t.fault =\tsnd_pcm_mmap_status_fault,\n" " };\n" @@ -1104,7 +1123,7 @@ " \tstruct snd_pcm_runtime *runtime;\n" "-\tstruct page * page;\n" " \t\n" - " \tif (substream = NULL)\n" + " \tif (substream == NULL)\n" "-\t\treturn NOPAGE_SIGBUS;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \truntime = substream->runtime;\n" @@ -1118,7 +1137,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct snd_pcm_vm_ops_control {\n" + " static struct vm_operations_struct snd_pcm_vm_ops_control =\n" + " {\n" "-\t.nopage =\tsnd_pcm_mmap_control_nopage,\n" "+\t.fault =\tsnd_pcm_mmap_control_fault,\n" " };\n" @@ -1141,13 +1161,13 @@ "@@ -3130,33 +3124,30 @@ static struct page *snd_pcm_mmap_data_no\n" " \tsize_t dma_bytes;\n" " \t\n" - " \tif (substream = NULL)\n" + " \tif (substream == NULL)\n" "-\t\treturn NOPAGE_SIGBUS;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \truntime = substream->runtime;\n" "-\toffset = area->vm_pgoff << PAGE_SHIFT;\n" "-\toffset += address - area->vm_start;\n" - "-\tsnd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS);\n" + "-\tsnd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS);\n" "+\toffset = vmf->pgoff << PAGE_SHIFT;\n" " \tdma_bytes = PAGE_ALIGN(runtime->dma_bytes);\n" " \tif (offset > dma_bytes - PAGE_SIZE)\n" @@ -1171,7 +1191,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct snd_pcm_vm_ops_data {\n" + " static struct vm_operations_struct snd_pcm_vm_ops_data =\n" + " {\n" " \t.open =\t\tsnd_pcm_mmap_data_open,\n" " \t.close =\tsnd_pcm_mmap_data_close,\n" "-\t.nopage =\tsnd_pcm_mmap_data_nopage,\n" @@ -1180,7 +1201,8 @@ " \n" " /*\n" "Index: linux-2.6/sound/oss/via82cxxx_audio.c\n" - "=================================--- linux-2.6.orig/sound/oss/via82cxxx_audio.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/oss/via82cxxx_audio.c\n" "+++ linux-2.6/sound/oss/via82cxxx_audio.c\n" "@@ -2099,8 +2099,7 @@ static void via_dsp_cleanup (struct via_\n" " }\n" @@ -1233,7 +1255,8 @@ " \n" " \n" "Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c\n" - "=================================--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c\n" "+++ linux-2.6/sound/usb/usx2y/usX2Yhwdep.c\n" "@@ -34,34 +34,29 @@\n" " int usX2Y_hwdep_pcm_new(struct snd_card *card);\n" @@ -1256,7 +1279,7 @@ " \t\n" "-\toffset = area->vm_pgoff << PAGE_SHIFT;\n" "-\toffset += address - area->vm_start;\n" - "-\tsnd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS);\n" + "-\tsnd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS);\n" "+\toffset = vmf->pgoff << PAGE_SHIFT;\n" " \tvaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->us428ctls_sharedmem + offset;\n" " \tpage = virt_to_page(vaddr);\n" @@ -1279,7 +1302,8 @@ " \n" " static int snd_us428ctls_mmap(struct snd_hwdep * hw, struct file *filp, struct vm_area_struct *area)\n" "Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c\n" - "=================================--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c\n" "+++ linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c\n" "@@ -683,30 +683,23 @@ static void snd_usX2Y_hwdep_pcm_vm_close\n" " }\n" @@ -1294,7 +1318,7 @@ " \n" "-\toffset = area->vm_pgoff << PAGE_SHIFT;\n" "-\toffset += address - area->vm_start;\n" - "-\tsnd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_OOM);\n" + "-\tsnd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM);\n" "+\toffset = vmf->pgoff << PAGE_SHIFT;\n" " \tvaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->hwdep_pcm_shm + offset;\n" "-\tpage = virt_to_page(vaddr);\n" @@ -1319,7 +1343,8 @@ " \n" " \n" "Index: linux-2.6/Documentation/fb/deferred_io.txt\n" - "=================================--- linux-2.6.orig/Documentation/fb/deferred_io.txt\n" + "===================================================================\n" + "--- linux-2.6.orig/Documentation/fb/deferred_io.txt\n" "+++ linux-2.6/Documentation/fb/deferred_io.txt\n" "@@ -7,10 +7,10 @@ IO. The following example may be a usefu\n" " works:\n" @@ -1336,7 +1361,8 @@ " - schedule a workqueue task to be run after a delay\n" " - app continues writing to that page with no additional cost. this is\n" "Index: linux-2.6/Documentation/feature-removal-schedule.txt\n" - "=================================--- linux-2.6.orig/Documentation/feature-removal-schedule.txt\n" + "===================================================================\n" + "--- linux-2.6.orig/Documentation/feature-removal-schedule.txt\n" "+++ linux-2.6/Documentation/feature-removal-schedule.txt\n" "@@ -172,15 +172,6 @@ Who:\tGreg Kroah-Hartman <gregkh@suse.de>\n" " \n" @@ -1355,7 +1381,8 @@ " When:\tSeptember 2007\n" " Why:\tThe interrupt related SA_* flags are replaced by IRQF_* to move them\n" "Index: linux-2.6/Documentation/filesystems/Locking\n" - "=================================--- linux-2.6.orig/Documentation/filesystems/Locking\n" + "===================================================================\n" + "--- linux-2.6.orig/Documentation/filesystems/Locking\n" "+++ linux-2.6/Documentation/filesystems/Locking\n" "@@ -514,7 +514,6 @@ prototypes:\n" " \tvoid (*open)(struct vm_area_struct*);\n" @@ -1379,7 +1406,8 @@ " ->read() and ->write() in many drivers are (probably) missing BKL.\n" "-drivers/sgi/char/graphics.c::sgi_graphics_nopage() - may need BKL.\n" "Index: linux-2.6/mm/rmap.c\n" - "=================================--- linux-2.6.orig/mm/rmap.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/rmap.c\n" "+++ linux-2.6/mm/rmap.c\n" "@@ -621,7 +621,6 @@ void page_remove_rmap(struct page *page,\n" " \t\t\tprintk (KERN_EMERG \" page->mapping = %p\\n\", page->mapping);\n" @@ -1390,7 +1418,8 @@ " \t\t\t}\n" " \t\t\tif (vma->vm_file && vma->vm_file->f_op)\n" "Index: linux-2.6/drivers/uio/uio.c\n" - "=================================--- linux-2.6.orig/drivers/uio/uio.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/uio/uio.c\n" "+++ linux-2.6/drivers/uio/uio.c\n" "@@ -412,30 +412,28 @@ static void uio_vma_close(struct vm_area\n" " \tidev->vma_count--;\n" @@ -1409,7 +1438,7 @@ "-\t\treturn page;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \n" - " \tif (idev->info->mem[mi].memtype = UIO_MEM_LOGICAL)\n" + " \tif (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL)\n" " \t\tpage = virt_to_page(idev->info->mem[mi].addr);\n" " \telse\n" " \t\tpage = vmalloc_to_page((void*)idev->info->mem[mi].addr);\n" @@ -1430,4 +1459,4 @@ " \n" static int uio_mmap_physical(struct vm_area_struct *vma) -9485d0a07ee7724606b2242392d04d752f7bc4c82aad4f3ccfc604133d5a7934 +27d4a6497d3c3b56528d13e2c063851a50614e70f3b869c8b15de55ea0147a40
diff --git a/a/1.txt b/N2/1.txt index cd77757..15d61cb 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,4 +1,3 @@ - Hi all, This is a patch to remove 'nopage' from the tree. @@ -61,7 +60,8 @@ take a look at this all together, the discussion will be more coherent ;) 24 files changed, 238 insertions(+), 359 deletions(-) Index: linux-2.6/include/linux/mm.h -=================================--- linux-2.6.orig/include/linux/mm.h +=================================================================== +--- linux-2.6.orig/include/linux/mm.h +++ linux-2.6/include/linux/mm.h @@ -162,8 +162,6 @@ struct vm_operations_struct { void (*open)(struct vm_area_struct * area); @@ -86,7 +86,8 @@ Index: linux-2.6/include/linux/mm.h */ #define NOPFN_SIGBUS ((unsigned long) -1) Index: linux-2.6/kernel/relay.c -=================================--- linux-2.6.orig/kernel/relay.c +=================================================================== +--- linux-2.6.orig/kernel/relay.c +++ linux-2.6/kernel/relay.c @@ -37,37 +37,31 @@ static void relay_file_mmap_close(struct } @@ -136,7 +137,8 @@ Index: linux-2.6/kernel/relay.c }; Index: linux-2.6/mm/memory.c -=================================--- linux-2.6.orig/mm/memory.c +=================================================================== +--- linux-2.6.orig/mm/memory.c +++ linux-2.6/mm/memory.c @@ -1044,8 +1044,7 @@ int get_user_pages(struct task_struct *t if (pages) @@ -161,9 +163,9 @@ Index: linux-2.6/mm/memory.c - ret = 0; - vmf.page = vma->vm_ops->nopage(vma, address & PAGE_MASK, &ret); - /* no page was available -- either SIGBUS or OOM */ -- if (unlikely(vmf.page = NOPAGE_SIGBUS)) +- if (unlikely(vmf.page == NOPAGE_SIGBUS)) - return VM_FAULT_SIGBUS; -- else if (unlikely(vmf.page = NOPAGE_OOM)) +- else if (unlikely(vmf.page == NOPAGE_OOM)) - return VM_FAULT_OOM; - } + ret = vma->vm_ops->fault(vma, &vmf); @@ -182,7 +184,8 @@ Index: linux-2.6/mm/memory.c pte, pmd, write_access, entry); if (unlikely(vma->vm_ops->nopfn)) Index: linux-2.6/mm/mincore.c -=================================--- linux-2.6.orig/mm/mincore.c +=================================================================== +--- linux-2.6.orig/mm/mincore.c +++ linux-2.6/mm/mincore.c @@ -33,7 +33,7 @@ static unsigned char mincore_page(struct * When tmpfs swaps out a page from a file, any process mapping that @@ -194,7 +197,8 @@ Index: linux-2.6/mm/mincore.c * However when tmpfs moves the page from pagecache and into swapcache, * it is still in core, but the find_get_page below won't find it. Index: linux-2.6/mm/mmap.c -=================================--- linux-2.6.orig/mm/mmap.c +=================================================================== +--- linux-2.6.orig/mm/mmap.c +++ linux-2.6/mm/mmap.c @@ -2149,24 +2149,23 @@ int may_expand_vm(struct mm_struct *mm, } @@ -239,7 +243,8 @@ Index: linux-2.6/mm/mmap.c /* Index: linux-2.6/arch/ia64/ia32/binfmt_elf32.c -=================================--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c +=================================================================== +--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c +++ linux-2.6/arch/ia64/ia32/binfmt_elf32.c @@ -52,33 +52,29 @@ extern struct page *ia32_shared_page[]; extern unsigned long *ia32_gdt; @@ -291,7 +296,8 @@ Index: linux-2.6/arch/ia64/ia32/binfmt_elf32.c void Index: linux-2.6/drivers/char/agp/alpha-agp.c -=================================--- linux-2.6.orig/drivers/char/agp/alpha-agp.c +=================================================================== +--- linux-2.6.orig/drivers/char/agp/alpha-agp.c +++ linux-2.6/drivers/char/agp/alpha-agp.c @@ -11,29 +11,28 @@ @@ -313,7 +319,7 @@ Index: linux-2.6/drivers/char/agp/alpha-agp.c + + agp->aperture.bus_base; pa = agp->ops->translate(agp, dma_addr); - if (pa = (unsigned long)-EINVAL) + if (pa == (unsigned long)-EINVAL) - return NULL; /* no translation */ + return VM_FAULT_SIGBUS; /* no translation */ @@ -329,7 +335,8 @@ Index: linux-2.6/drivers/char/agp/alpha-agp.c + return 0; } - static struct aper_size_info_fixed alpha_core_agp_sizes[] @@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha + static struct aper_size_info_fixed alpha_core_agp_sizes[] = +@@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha }; struct vm_operations_struct alpha_core_agp_vm_ops = { @@ -339,7 +346,8 @@ Index: linux-2.6/drivers/char/agp/alpha-agp.c Index: linux-2.6/drivers/char/drm/drm_vm.c -=================================--- linux-2.6.orig/drivers/char/drm/drm_vm.c +=================================================================== +--- linux-2.6.orig/drivers/char/drm/drm_vm.c +++ linux-2.6/drivers/char/drm/drm_vm.c @@ -66,7 +66,7 @@ static pgprot_t drm_io_prot(uint32_t map } @@ -379,7 +387,7 @@ Index: linux-2.6/drivers/char/drm/drm_vm.c r_list = drm_hash_entry(hash, struct drm_map_list, hash); map = r_list->map; - if (map && map->type = _DRM_AGP) { + if (map && map->type == _DRM_AGP) { - unsigned long offset = address - vma->vm_start; + /* + * Using vm_pgoff as a selector forces us to use this unusual @@ -650,7 +658,8 @@ Index: linux-2.6/drivers/char/drm/drm_vm.c page_to_pfn(virt_to_page(map->handle)), vma->vm_end - vma->vm_start, vma->vm_page_prot)) Index: linux-2.6/drivers/ieee1394/dma.c -=================================--- linux-2.6.orig/drivers/ieee1394/dma.c +=================================================================== +--- linux-2.6.orig/drivers/ieee1394/dma.c +++ linux-2.6/drivers/ieee1394/dma.c @@ -231,37 +231,32 @@ void dma_region_sync_for_device(struct d @@ -716,7 +725,8 @@ Index: linux-2.6/drivers/ieee1394/dma.c return -EINVAL; Index: linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c -=================================--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c +=================================================================== +--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c +++ linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c @@ -1120,33 +1120,24 @@ bail: } @@ -763,7 +773,8 @@ Index: linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr, Index: linux-2.6/drivers/kvm/kvm_main.c -=================================--- linux-2.6.orig/drivers/kvm/kvm_main.c +=================================================================== +--- linux-2.6.orig/drivers/kvm/kvm_main.c +++ linux-2.6/drivers/kvm/kvm_main.c @@ -2534,30 +2534,24 @@ static int kvm_vcpu_ioctl_debug_guest(st return r; @@ -779,11 +790,11 @@ Index: linux-2.6/drivers/kvm/kvm_main.c struct page *page; - pgoff = ((address - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; -- if (pgoff = 0) -+ if (vmf->pgoff = 0) +- if (pgoff == 0) ++ if (vmf->pgoff == 0) page = virt_to_page(vcpu->run); -- else if (pgoff = KVM_PIO_PAGE_OFFSET) -+ else if (vmf->pgoff = KVM_PIO_PAGE_OFFSET) +- else if (pgoff == KVM_PIO_PAGE_OFFSET) ++ else if (vmf->pgoff == KVM_PIO_PAGE_OFFSET) page = virt_to_page(vcpu->pio_data); else - return NOPAGE_SIGBUS; @@ -838,7 +849,8 @@ Index: linux-2.6/drivers/kvm/kvm_main.c static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma) Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c -=================================--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c +=================================================================== +--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c +++ linux-2.6/drivers/media/video/videobuf-dma-sg.c @@ -385,30 +385,26 @@ videobuf_vm_close(struct vm_area_struct * now ...). Bounce buffers don't work very well for the data rates @@ -870,7 +882,8 @@ Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c + return 0; } - static struct vm_operations_struct videobuf_vm_ops { + static struct vm_operations_struct videobuf_vm_ops = + { .open = videobuf_vm_open, .close = videobuf_vm_close, - .nopage = videobuf_vm_nopage, @@ -879,7 +892,8 @@ Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c /* --------------------------------------------------------------------- Index: linux-2.6/drivers/scsi/sg.c -=================================--- linux-2.6.orig/drivers/scsi/sg.c +=================================================================== +--- linux-2.6.orig/drivers/scsi/sg.c +++ linux-2.6/drivers/scsi/sg.c @@ -1144,23 +1144,22 @@ sg_fasync(int fd, struct file *filp, int return (retval < 0) ? retval : 0; @@ -897,7 +911,7 @@ Index: linux-2.6/drivers/scsi/sg.c struct scatterlist *sg; int k; - if ((NULL = vma) || (!(sfp = (Sg_fd *) vma->vm_private_data))) + if ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data))) - return page; + return VM_FAULT_SIGBUS; rsv_schp = &sfp->reserve; @@ -939,7 +953,8 @@ Index: linux-2.6/drivers/scsi/sg.c static int Index: linux-2.6/drivers/usb/mon/mon_bin.c -=================================--- linux-2.6.orig/drivers/usb/mon/mon_bin.c +=================================================================== +--- linux-2.6.orig/drivers/usb/mon/mon_bin.c +++ linux-2.6/drivers/usb/mon/mon_bin.c @@ -1045,33 +1045,31 @@ static void mon_bin_vma_close(struct vm_ /* @@ -983,7 +998,8 @@ Index: linux-2.6/drivers/usb/mon/mon_bin.c vma->vm_flags |= VM_RESERVED; vma->vm_private_data = filp->private_data; Index: linux-2.6/drivers/video/fb_defio.c -=================================--- linux-2.6.orig/drivers/video/fb_defio.c +=================================================================== +--- linux-2.6.orig/drivers/video/fb_defio.c +++ linux-2.6/drivers/video/fb_defio.c @@ -25,8 +25,8 @@ #include <linux/pagemap.h> @@ -1030,7 +1046,8 @@ Index: linux-2.6/drivers/video/fb_defio.c }; Index: linux-2.6/sound/core/pcm_native.c -=================================--- linux-2.6.orig/sound/core/pcm_native.c +=================================================================== +--- linux-2.6.orig/sound/core/pcm_native.c +++ linux-2.6/sound/core/pcm_native.c @@ -3018,26 +3018,23 @@ static unsigned int snd_pcm_capture_poll /* @@ -1045,7 +1062,7 @@ Index: linux-2.6/sound/core/pcm_native.c struct snd_pcm_runtime *runtime; - struct page * page; - if (substream = NULL) + if (substream == NULL) - return NOPAGE_SIGBUS; + return VM_FAULT_SIGBUS; runtime = substream->runtime; @@ -1059,7 +1076,8 @@ Index: linux-2.6/sound/core/pcm_native.c + return 0; } - static struct vm_operations_struct snd_pcm_vm_ops_status { + static struct vm_operations_struct snd_pcm_vm_ops_status = + { - .nopage = snd_pcm_mmap_status_nopage, + .fault = snd_pcm_mmap_status_fault, }; @@ -1078,7 +1096,7 @@ Index: linux-2.6/sound/core/pcm_native.c struct snd_pcm_runtime *runtime; - struct page * page; - if (substream = NULL) + if (substream == NULL) - return NOPAGE_SIGBUS; + return VM_FAULT_SIGBUS; runtime = substream->runtime; @@ -1092,7 +1110,8 @@ Index: linux-2.6/sound/core/pcm_native.c + return 0; } - static struct vm_operations_struct snd_pcm_vm_ops_control { + static struct vm_operations_struct snd_pcm_vm_ops_control = + { - .nopage = snd_pcm_mmap_control_nopage, + .fault = snd_pcm_mmap_control_fault, }; @@ -1115,13 +1134,13 @@ Index: linux-2.6/sound/core/pcm_native.c @@ -3130,33 +3124,30 @@ static struct page *snd_pcm_mmap_data_no size_t dma_bytes; - if (substream = NULL) + if (substream == NULL) - return NOPAGE_SIGBUS; + return VM_FAULT_SIGBUS; runtime = substream->runtime; - offset = area->vm_pgoff << PAGE_SHIFT; - offset += address - area->vm_start; -- snd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS); +- snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS); + offset = vmf->pgoff << PAGE_SHIFT; dma_bytes = PAGE_ALIGN(runtime->dma_bytes); if (offset > dma_bytes - PAGE_SIZE) @@ -1145,7 +1164,8 @@ Index: linux-2.6/sound/core/pcm_native.c + return 0; } - static struct vm_operations_struct snd_pcm_vm_ops_data { + static struct vm_operations_struct snd_pcm_vm_ops_data = + { .open = snd_pcm_mmap_data_open, .close = snd_pcm_mmap_data_close, - .nopage = snd_pcm_mmap_data_nopage, @@ -1154,7 +1174,8 @@ Index: linux-2.6/sound/core/pcm_native.c /* Index: linux-2.6/sound/oss/via82cxxx_audio.c -=================================--- linux-2.6.orig/sound/oss/via82cxxx_audio.c +=================================================================== +--- linux-2.6.orig/sound/oss/via82cxxx_audio.c +++ linux-2.6/sound/oss/via82cxxx_audio.c @@ -2099,8 +2099,7 @@ static void via_dsp_cleanup (struct via_ } @@ -1207,7 +1228,8 @@ Index: linux-2.6/sound/oss/via82cxxx_audio.c Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c -=================================--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c +=================================================================== +--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c +++ linux-2.6/sound/usb/usx2y/usX2Yhwdep.c @@ -34,34 +34,29 @@ int usX2Y_hwdep_pcm_new(struct snd_card *card); @@ -1230,7 +1252,7 @@ Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c - offset = area->vm_pgoff << PAGE_SHIFT; - offset += address - area->vm_start; -- snd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS); +- snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS); + offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); @@ -1253,7 +1275,8 @@ Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c static int snd_us428ctls_mmap(struct snd_hwdep * hw, struct file *filp, struct vm_area_struct *area) Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c -=================================--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c +=================================================================== +--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c +++ linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c @@ -683,30 +683,23 @@ static void snd_usX2Y_hwdep_pcm_vm_close } @@ -1268,7 +1291,7 @@ Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c - offset = area->vm_pgoff << PAGE_SHIFT; - offset += address - area->vm_start; -- snd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_OOM); +- snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM); + offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->hwdep_pcm_shm + offset; - page = virt_to_page(vaddr); @@ -1293,7 +1316,8 @@ Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c Index: linux-2.6/Documentation/fb/deferred_io.txt -=================================--- linux-2.6.orig/Documentation/fb/deferred_io.txt +=================================================================== +--- linux-2.6.orig/Documentation/fb/deferred_io.txt +++ linux-2.6/Documentation/fb/deferred_io.txt @@ -7,10 +7,10 @@ IO. The following example may be a usefu works: @@ -1310,7 +1334,8 @@ Index: linux-2.6/Documentation/fb/deferred_io.txt - schedule a workqueue task to be run after a delay - app continues writing to that page with no additional cost. this is Index: linux-2.6/Documentation/feature-removal-schedule.txt -=================================--- linux-2.6.orig/Documentation/feature-removal-schedule.txt +=================================================================== +--- linux-2.6.orig/Documentation/feature-removal-schedule.txt +++ linux-2.6/Documentation/feature-removal-schedule.txt @@ -172,15 +172,6 @@ Who: Greg Kroah-Hartman <gregkh@suse.de> @@ -1329,7 +1354,8 @@ Index: linux-2.6/Documentation/feature-removal-schedule.txt When: September 2007 Why: The interrupt related SA_* flags are replaced by IRQF_* to move them Index: linux-2.6/Documentation/filesystems/Locking -=================================--- linux-2.6.orig/Documentation/filesystems/Locking +=================================================================== +--- linux-2.6.orig/Documentation/filesystems/Locking +++ linux-2.6/Documentation/filesystems/Locking @@ -514,7 +514,6 @@ prototypes: void (*open)(struct vm_area_struct*); @@ -1353,7 +1379,8 @@ Index: linux-2.6/Documentation/filesystems/Locking ->read() and ->write() in many drivers are (probably) missing BKL. -drivers/sgi/char/graphics.c::sgi_graphics_nopage() - may need BKL. Index: linux-2.6/mm/rmap.c -=================================--- linux-2.6.orig/mm/rmap.c +=================================================================== +--- linux-2.6.orig/mm/rmap.c +++ linux-2.6/mm/rmap.c @@ -621,7 +621,6 @@ void page_remove_rmap(struct page *page, printk (KERN_EMERG " page->mapping = %p\n", page->mapping); @@ -1364,7 +1391,8 @@ Index: linux-2.6/mm/rmap.c } if (vma->vm_file && vma->vm_file->f_op) Index: linux-2.6/drivers/uio/uio.c -=================================--- linux-2.6.orig/drivers/uio/uio.c +=================================================================== +--- linux-2.6.orig/drivers/uio/uio.c +++ linux-2.6/drivers/uio/uio.c @@ -412,30 +412,28 @@ static void uio_vma_close(struct vm_area idev->vma_count--; @@ -1383,7 +1411,7 @@ Index: linux-2.6/drivers/uio/uio.c - return page; + return VM_FAULT_SIGBUS; - if (idev->info->mem[mi].memtype = UIO_MEM_LOGICAL) + if (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL) page = virt_to_page(idev->info->mem[mi].addr); else page = vmalloc_to_page((void*)idev->info->mem[mi].addr); @@ -1403,3 +1431,9 @@ Index: linux-2.6/drivers/uio/uio.c }; static int uio_mmap_physical(struct vm_area_struct *vma) + +-- +To unsubscribe, send a message with 'unsubscribe linux-mm' in +the body to majordomo@kvack.org. For more info on Linux MM, +see: http://www.linux-mm.org/ . +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N2/content_digest index f7855f3..1911b79 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,6 +1,6 @@ "From\0Nick Piggin <npiggin@suse.de>\0" "Subject\0[rfc][patch] remove nopage\0" - "Date\0Mon, 12 Nov 2007 01:56:43 +0000\0" + "Date\0Mon, 12 Nov 2007 02:56:43 +0100\0" "To\0Linus Torvalds <torvalds@linux-foundation.org>" Linux Memory Management List <linux-mm@kvack.org> " Linux Kernel Mailing List <linux-kernel@vger.kernel.org>\0" @@ -24,7 +24,6 @@ " Karsten Wiese <annabellesgarden@yahoo.de>\0" "\00:1\0" "b\0" - "\n" "Hi all,\n" "\n" "This is a patch to remove 'nopage' from the tree.\n" @@ -87,7 +86,8 @@ " 24 files changed, 238 insertions(+), 359 deletions(-)\n" "\n" "Index: linux-2.6/include/linux/mm.h\n" - "=================================--- linux-2.6.orig/include/linux/mm.h\n" + "===================================================================\n" + "--- linux-2.6.orig/include/linux/mm.h\n" "+++ linux-2.6/include/linux/mm.h\n" "@@ -162,8 +162,6 @@ struct vm_operations_struct {\n" " \tvoid (*open)(struct vm_area_struct * area);\n" @@ -112,7 +112,8 @@ " */\n" " #define NOPFN_SIGBUS\t((unsigned long) -1)\n" "Index: linux-2.6/kernel/relay.c\n" - "=================================--- linux-2.6.orig/kernel/relay.c\n" + "===================================================================\n" + "--- linux-2.6.orig/kernel/relay.c\n" "+++ linux-2.6/kernel/relay.c\n" "@@ -37,37 +37,31 @@ static void relay_file_mmap_close(struct\n" " }\n" @@ -162,7 +163,8 @@ " };\n" " \n" "Index: linux-2.6/mm/memory.c\n" - "=================================--- linux-2.6.orig/mm/memory.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/memory.c\n" "+++ linux-2.6/mm/memory.c\n" "@@ -1044,8 +1044,7 @@ int get_user_pages(struct task_struct *t\n" " \t\tif (pages)\n" @@ -187,9 +189,9 @@ "-\t\tret = 0;\n" "-\t\tvmf.page = vma->vm_ops->nopage(vma, address & PAGE_MASK, &ret);\n" "-\t\t/* no page was available -- either SIGBUS or OOM */\n" - "-\t\tif (unlikely(vmf.page = NOPAGE_SIGBUS))\n" + "-\t\tif (unlikely(vmf.page == NOPAGE_SIGBUS))\n" "-\t\t\treturn VM_FAULT_SIGBUS;\n" - "-\t\telse if (unlikely(vmf.page = NOPAGE_OOM))\n" + "-\t\telse if (unlikely(vmf.page == NOPAGE_OOM))\n" "-\t\t\treturn VM_FAULT_OOM;\n" "-\t}\n" "+\tret = vma->vm_ops->fault(vma, &vmf);\n" @@ -208,7 +210,8 @@ " \t\t\t\t\t\tpte, pmd, write_access, entry);\n" " \t\t\t\tif (unlikely(vma->vm_ops->nopfn))\n" "Index: linux-2.6/mm/mincore.c\n" - "=================================--- linux-2.6.orig/mm/mincore.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/mincore.c\n" "+++ linux-2.6/mm/mincore.c\n" "@@ -33,7 +33,7 @@ static unsigned char mincore_page(struct\n" " \t * When tmpfs swaps out a page from a file, any process mapping that\n" @@ -220,7 +223,8 @@ " \t * However when tmpfs moves the page from pagecache and into swapcache,\n" " \t * it is still in core, but the find_get_page below won't find it.\n" "Index: linux-2.6/mm/mmap.c\n" - "=================================--- linux-2.6.orig/mm/mmap.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/mmap.c\n" "+++ linux-2.6/mm/mmap.c\n" "@@ -2149,24 +2149,23 @@ int may_expand_vm(struct mm_struct *mm, \n" " }\n" @@ -265,7 +269,8 @@ " \n" " /*\n" "Index: linux-2.6/arch/ia64/ia32/binfmt_elf32.c\n" - "=================================--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c\n" + "===================================================================\n" + "--- linux-2.6.orig/arch/ia64/ia32/binfmt_elf32.c\n" "+++ linux-2.6/arch/ia64/ia32/binfmt_elf32.c\n" "@@ -52,33 +52,29 @@ extern struct page *ia32_shared_page[];\n" " extern unsigned long *ia32_gdt;\n" @@ -317,7 +322,8 @@ " \n" " void\n" "Index: linux-2.6/drivers/char/agp/alpha-agp.c\n" - "=================================--- linux-2.6.orig/drivers/char/agp/alpha-agp.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/char/agp/alpha-agp.c\n" "+++ linux-2.6/drivers/char/agp/alpha-agp.c\n" "@@ -11,29 +11,28 @@\n" " \n" @@ -339,7 +345,7 @@ "+\t\t\t\t\t\t+ agp->aperture.bus_base;\n" " \tpa = agp->ops->translate(agp, dma_addr);\n" " \n" - " \tif (pa = (unsigned long)-EINVAL)\n" + " \tif (pa == (unsigned long)-EINVAL)\n" "-\t\treturn NULL;\t/* no translation */\n" "+\t\treturn VM_FAULT_SIGBUS;\t/* no translation */\n" " \n" @@ -355,7 +361,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct aper_size_info_fixed alpha_core_agp_sizes[] @@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha\n" + " static struct aper_size_info_fixed alpha_core_agp_sizes[] =\n" + "@@ -42,7 +41,7 @@ static struct aper_size_info_fixed alpha\n" " };\n" " \n" " struct vm_operations_struct alpha_core_agp_vm_ops = {\n" @@ -365,7 +372,8 @@ " \n" " \n" "Index: linux-2.6/drivers/char/drm/drm_vm.c\n" - "=================================--- linux-2.6.orig/drivers/char/drm/drm_vm.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/char/drm/drm_vm.c\n" "+++ linux-2.6/drivers/char/drm/drm_vm.c\n" "@@ -66,7 +66,7 @@ static pgprot_t drm_io_prot(uint32_t map\n" " }\n" @@ -405,7 +413,7 @@ " \tr_list = drm_hash_entry(hash, struct drm_map_list, hash);\n" " \tmap = r_list->map;\n" " \n" - " \tif (map && map->type = _DRM_AGP) {\n" + " \tif (map && map->type == _DRM_AGP) {\n" "-\t\tunsigned long offset = address - vma->vm_start;\n" "+\t\t/*\n" "+\t\t * Using vm_pgoff as a selector forces us to use this unusual\n" @@ -676,7 +684,8 @@ " \t\t page_to_pfn(virt_to_page(map->handle)),\n" " \t\t vma->vm_end - vma->vm_start, vma->vm_page_prot))\n" "Index: linux-2.6/drivers/ieee1394/dma.c\n" - "=================================--- linux-2.6.orig/drivers/ieee1394/dma.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/ieee1394/dma.c\n" "+++ linux-2.6/drivers/ieee1394/dma.c\n" "@@ -231,37 +231,32 @@ void dma_region_sync_for_device(struct d\n" " \n" @@ -742,7 +751,8 @@ " \t\treturn -EINVAL;\n" " \n" "Index: linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" - "=================================--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" "+++ linux-2.6/drivers/infiniband/hw/ipath/ipath_file_ops.c\n" "@@ -1120,33 +1120,24 @@ bail:\n" " }\n" @@ -789,7 +799,8 @@ " \n" " static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr,\n" "Index: linux-2.6/drivers/kvm/kvm_main.c\n" - "=================================--- linux-2.6.orig/drivers/kvm/kvm_main.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/kvm/kvm_main.c\n" "+++ linux-2.6/drivers/kvm/kvm_main.c\n" "@@ -2534,30 +2534,24 @@ static int kvm_vcpu_ioctl_debug_guest(st\n" " \treturn r;\n" @@ -805,11 +816,11 @@ " \tstruct page *page;\n" " \n" "-\tpgoff = ((address - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;\n" - "-\tif (pgoff = 0)\n" - "+\tif (vmf->pgoff = 0)\n" + "-\tif (pgoff == 0)\n" + "+\tif (vmf->pgoff == 0)\n" " \t\tpage = virt_to_page(vcpu->run);\n" - "-\telse if (pgoff = KVM_PIO_PAGE_OFFSET)\n" - "+\telse if (vmf->pgoff = KVM_PIO_PAGE_OFFSET)\n" + "-\telse if (pgoff == KVM_PIO_PAGE_OFFSET)\n" + "+\telse if (vmf->pgoff == KVM_PIO_PAGE_OFFSET)\n" " \t\tpage = virt_to_page(vcpu->pio_data);\n" " \telse\n" "-\t\treturn NOPAGE_SIGBUS;\n" @@ -864,7 +875,8 @@ " \n" " static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma)\n" "Index: linux-2.6/drivers/media/video/videobuf-dma-sg.c\n" - "=================================--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/media/video/videobuf-dma-sg.c\n" "+++ linux-2.6/drivers/media/video/videobuf-dma-sg.c\n" "@@ -385,30 +385,26 @@ videobuf_vm_close(struct vm_area_struct \n" " * now ...). Bounce buffers don't work very well for the data rates\n" @@ -896,7 +908,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct videobuf_vm_ops {\n" + " static struct vm_operations_struct videobuf_vm_ops =\n" + " {\n" " \t.open = videobuf_vm_open,\n" " \t.close = videobuf_vm_close,\n" "-\t.nopage = videobuf_vm_nopage,\n" @@ -905,7 +918,8 @@ " \n" " /* ---------------------------------------------------------------------\n" "Index: linux-2.6/drivers/scsi/sg.c\n" - "=================================--- linux-2.6.orig/drivers/scsi/sg.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/scsi/sg.c\n" "+++ linux-2.6/drivers/scsi/sg.c\n" "@@ -1144,23 +1144,22 @@ sg_fasync(int fd, struct file *filp, int\n" " \treturn (retval < 0) ? retval : 0;\n" @@ -923,7 +937,7 @@ " \tstruct scatterlist *sg;\n" " \tint k;\n" " \n" - " \tif ((NULL = vma) || (!(sfp = (Sg_fd *) vma->vm_private_data)))\n" + " \tif ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data)))\n" "-\t\treturn page;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \trsv_schp = &sfp->reserve;\n" @@ -965,7 +979,8 @@ " \n" " static int\n" "Index: linux-2.6/drivers/usb/mon/mon_bin.c\n" - "=================================--- linux-2.6.orig/drivers/usb/mon/mon_bin.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/usb/mon/mon_bin.c\n" "+++ linux-2.6/drivers/usb/mon/mon_bin.c\n" "@@ -1045,33 +1045,31 @@ static void mon_bin_vma_close(struct vm_\n" " /*\n" @@ -1009,7 +1024,8 @@ " \tvma->vm_flags |= VM_RESERVED;\n" " \tvma->vm_private_data = filp->private_data;\n" "Index: linux-2.6/drivers/video/fb_defio.c\n" - "=================================--- linux-2.6.orig/drivers/video/fb_defio.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/video/fb_defio.c\n" "+++ linux-2.6/drivers/video/fb_defio.c\n" "@@ -25,8 +25,8 @@\n" " #include <linux/pagemap.h>\n" @@ -1056,7 +1072,8 @@ " };\n" " \n" "Index: linux-2.6/sound/core/pcm_native.c\n" - "=================================--- linux-2.6.orig/sound/core/pcm_native.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/core/pcm_native.c\n" "+++ linux-2.6/sound/core/pcm_native.c\n" "@@ -3018,26 +3018,23 @@ static unsigned int snd_pcm_capture_poll\n" " /*\n" @@ -1071,7 +1088,7 @@ " \tstruct snd_pcm_runtime *runtime;\n" "-\tstruct page * page;\n" " \t\n" - " \tif (substream = NULL)\n" + " \tif (substream == NULL)\n" "-\t\treturn NOPAGE_SIGBUS;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \truntime = substream->runtime;\n" @@ -1085,7 +1102,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct snd_pcm_vm_ops_status {\n" + " static struct vm_operations_struct snd_pcm_vm_ops_status =\n" + " {\n" "-\t.nopage =\tsnd_pcm_mmap_status_nopage,\n" "+\t.fault =\tsnd_pcm_mmap_status_fault,\n" " };\n" @@ -1104,7 +1122,7 @@ " \tstruct snd_pcm_runtime *runtime;\n" "-\tstruct page * page;\n" " \t\n" - " \tif (substream = NULL)\n" + " \tif (substream == NULL)\n" "-\t\treturn NOPAGE_SIGBUS;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \truntime = substream->runtime;\n" @@ -1118,7 +1136,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct snd_pcm_vm_ops_control {\n" + " static struct vm_operations_struct snd_pcm_vm_ops_control =\n" + " {\n" "-\t.nopage =\tsnd_pcm_mmap_control_nopage,\n" "+\t.fault =\tsnd_pcm_mmap_control_fault,\n" " };\n" @@ -1141,13 +1160,13 @@ "@@ -3130,33 +3124,30 @@ static struct page *snd_pcm_mmap_data_no\n" " \tsize_t dma_bytes;\n" " \t\n" - " \tif (substream = NULL)\n" + " \tif (substream == NULL)\n" "-\t\treturn NOPAGE_SIGBUS;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \truntime = substream->runtime;\n" "-\toffset = area->vm_pgoff << PAGE_SHIFT;\n" "-\toffset += address - area->vm_start;\n" - "-\tsnd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS);\n" + "-\tsnd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS);\n" "+\toffset = vmf->pgoff << PAGE_SHIFT;\n" " \tdma_bytes = PAGE_ALIGN(runtime->dma_bytes);\n" " \tif (offset > dma_bytes - PAGE_SIZE)\n" @@ -1171,7 +1190,8 @@ "+\treturn 0;\n" " }\n" " \n" - " static struct vm_operations_struct snd_pcm_vm_ops_data {\n" + " static struct vm_operations_struct snd_pcm_vm_ops_data =\n" + " {\n" " \t.open =\t\tsnd_pcm_mmap_data_open,\n" " \t.close =\tsnd_pcm_mmap_data_close,\n" "-\t.nopage =\tsnd_pcm_mmap_data_nopage,\n" @@ -1180,7 +1200,8 @@ " \n" " /*\n" "Index: linux-2.6/sound/oss/via82cxxx_audio.c\n" - "=================================--- linux-2.6.orig/sound/oss/via82cxxx_audio.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/oss/via82cxxx_audio.c\n" "+++ linux-2.6/sound/oss/via82cxxx_audio.c\n" "@@ -2099,8 +2099,7 @@ static void via_dsp_cleanup (struct via_\n" " }\n" @@ -1233,7 +1254,8 @@ " \n" " \n" "Index: linux-2.6/sound/usb/usx2y/usX2Yhwdep.c\n" - "=================================--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/usb/usx2y/usX2Yhwdep.c\n" "+++ linux-2.6/sound/usb/usx2y/usX2Yhwdep.c\n" "@@ -34,34 +34,29 @@\n" " int usX2Y_hwdep_pcm_new(struct snd_card *card);\n" @@ -1256,7 +1278,7 @@ " \t\n" "-\toffset = area->vm_pgoff << PAGE_SHIFT;\n" "-\toffset += address - area->vm_start;\n" - "-\tsnd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_SIGBUS);\n" + "-\tsnd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS);\n" "+\toffset = vmf->pgoff << PAGE_SHIFT;\n" " \tvaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->us428ctls_sharedmem + offset;\n" " \tpage = virt_to_page(vaddr);\n" @@ -1279,7 +1301,8 @@ " \n" " static int snd_us428ctls_mmap(struct snd_hwdep * hw, struct file *filp, struct vm_area_struct *area)\n" "Index: linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c\n" - "=================================--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c\n" + "===================================================================\n" + "--- linux-2.6.orig/sound/usb/usx2y/usx2yhwdeppcm.c\n" "+++ linux-2.6/sound/usb/usx2y/usx2yhwdeppcm.c\n" "@@ -683,30 +683,23 @@ static void snd_usX2Y_hwdep_pcm_vm_close\n" " }\n" @@ -1294,7 +1317,7 @@ " \n" "-\toffset = area->vm_pgoff << PAGE_SHIFT;\n" "-\toffset += address - area->vm_start;\n" - "-\tsnd_assert((offset % PAGE_SIZE) = 0, return NOPAGE_OOM);\n" + "-\tsnd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM);\n" "+\toffset = vmf->pgoff << PAGE_SHIFT;\n" " \tvaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->hwdep_pcm_shm + offset;\n" "-\tpage = virt_to_page(vaddr);\n" @@ -1319,7 +1342,8 @@ " \n" " \n" "Index: linux-2.6/Documentation/fb/deferred_io.txt\n" - "=================================--- linux-2.6.orig/Documentation/fb/deferred_io.txt\n" + "===================================================================\n" + "--- linux-2.6.orig/Documentation/fb/deferred_io.txt\n" "+++ linux-2.6/Documentation/fb/deferred_io.txt\n" "@@ -7,10 +7,10 @@ IO. The following example may be a usefu\n" " works:\n" @@ -1336,7 +1360,8 @@ " - schedule a workqueue task to be run after a delay\n" " - app continues writing to that page with no additional cost. this is\n" "Index: linux-2.6/Documentation/feature-removal-schedule.txt\n" - "=================================--- linux-2.6.orig/Documentation/feature-removal-schedule.txt\n" + "===================================================================\n" + "--- linux-2.6.orig/Documentation/feature-removal-schedule.txt\n" "+++ linux-2.6/Documentation/feature-removal-schedule.txt\n" "@@ -172,15 +172,6 @@ Who:\tGreg Kroah-Hartman <gregkh@suse.de>\n" " \n" @@ -1355,7 +1380,8 @@ " When:\tSeptember 2007\n" " Why:\tThe interrupt related SA_* flags are replaced by IRQF_* to move them\n" "Index: linux-2.6/Documentation/filesystems/Locking\n" - "=================================--- linux-2.6.orig/Documentation/filesystems/Locking\n" + "===================================================================\n" + "--- linux-2.6.orig/Documentation/filesystems/Locking\n" "+++ linux-2.6/Documentation/filesystems/Locking\n" "@@ -514,7 +514,6 @@ prototypes:\n" " \tvoid (*open)(struct vm_area_struct*);\n" @@ -1379,7 +1405,8 @@ " ->read() and ->write() in many drivers are (probably) missing BKL.\n" "-drivers/sgi/char/graphics.c::sgi_graphics_nopage() - may need BKL.\n" "Index: linux-2.6/mm/rmap.c\n" - "=================================--- linux-2.6.orig/mm/rmap.c\n" + "===================================================================\n" + "--- linux-2.6.orig/mm/rmap.c\n" "+++ linux-2.6/mm/rmap.c\n" "@@ -621,7 +621,6 @@ void page_remove_rmap(struct page *page,\n" " \t\t\tprintk (KERN_EMERG \" page->mapping = %p\\n\", page->mapping);\n" @@ -1390,7 +1417,8 @@ " \t\t\t}\n" " \t\t\tif (vma->vm_file && vma->vm_file->f_op)\n" "Index: linux-2.6/drivers/uio/uio.c\n" - "=================================--- linux-2.6.orig/drivers/uio/uio.c\n" + "===================================================================\n" + "--- linux-2.6.orig/drivers/uio/uio.c\n" "+++ linux-2.6/drivers/uio/uio.c\n" "@@ -412,30 +412,28 @@ static void uio_vma_close(struct vm_area\n" " \tidev->vma_count--;\n" @@ -1409,7 +1437,7 @@ "-\t\treturn page;\n" "+\t\treturn VM_FAULT_SIGBUS;\n" " \n" - " \tif (idev->info->mem[mi].memtype = UIO_MEM_LOGICAL)\n" + " \tif (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL)\n" " \t\tpage = virt_to_page(idev->info->mem[mi].addr);\n" " \telse\n" " \t\tpage = vmalloc_to_page((void*)idev->info->mem[mi].addr);\n" @@ -1428,6 +1456,12 @@ "+\t.fault = uio_vma_fault,\n" " };\n" " \n" - static int uio_mmap_physical(struct vm_area_struct *vma) + " static int uio_mmap_physical(struct vm_area_struct *vma)\n" + "\n" + "--\n" + "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" + "the body to majordomo@kvack.org. For more info on Linux MM,\n" + "see: http://www.linux-mm.org/ .\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -9485d0a07ee7724606b2242392d04d752f7bc4c82aad4f3ccfc604133d5a7934 +e2a57c8c83c2a6dd999ba6908736f205b7d746da6bf5a137b9d8a94a15741852
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.