The patch titled pagemap fixes to pagemap_read() has been added to the -mm tree. Its filename is pagemap-fixes-to-pagemap_read.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: pagemap fixes to pagemap_read() From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Fix some issues noted by Alexey: - initialize pagemap_walk.mm to "mm" , so the code starts working as advertised - initialize ->private to "&pm" so it wouldn't immediately oops in pagemap_pte_hole() - unstatic struct pagemap_walk, so two threads won't fsckup each other (including those started by root, including flipping ->mm when you don't have permissions) Cc: Alexey Dobriyan <adobriyan@xxxxxxxxx> Cc: Matt Mackall <mpm@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/proc/task_mmu.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff -puN fs/proc/task_mmu.c~pagemap-fixes-to-pagemap_read fs/proc/task_mmu.c --- a/fs/proc/task_mmu.c~pagemap-fixes-to-pagemap_read +++ a/fs/proc/task_mmu.c @@ -602,11 +602,6 @@ static int pagemap_pte_range(pmd_t *pmd, return err; } -static struct mm_walk pagemap_walk = { - .pmd_entry = pagemap_pte_range, - .pte_hole = pagemap_pte_hole -}; - /* * /proc/pid/pagemap - an array mapping virtual pages to pfns * @@ -641,6 +636,7 @@ static ssize_t pagemap_read(struct file struct pagemapread pm; int pagecount; int ret = -ESRCH; + static struct mm_walk pagemap_walk; if (!task) goto out; @@ -659,6 +655,7 @@ static ssize_t pagemap_read(struct file if (!mm) goto out_task; + ret = -ENOMEM; uaddr = (unsigned long)buf & PAGE_MASK; uend = (unsigned long)(buf + count); @@ -684,6 +681,11 @@ static ssize_t pagemap_read(struct file pm.out = (u64 *)buf; pm.end = (u64 *)(buf + count); + pagemap_walk.pmd_entry = pagemap_pte_range; + pagemap_walk.pte_hole = pagemap_pte_hole; + pagemap_walk.mm = mm; + pagemap_walk.private = ± + if (!ptrace_may_attach(task)) { ret = -EIO; } else { _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch rtc-x1205-fix-alarm-set.patch spi-fix-the-read-path-in-spidev.patch security-filesystem-capabilities-fix-fragile-setuid-fixup-code.patch pagemap-fixes-to-pagemap_read.patch revert-introduce-rculisth.patch revert-cpumask-introduce-new-apis.patch linux-next.patch next-remove-localversion.patch linux-next-fixups.patch linux-next-git-rejects.patch fix-kobject-fix-kobject_rename-and-config_sysfs.patch kvm-is-busted-on-ia64.patch drivers-mtd-nand-nandsimc-needs-div64h.patch pci-make-pci_register_driver-a-macro.patch net-ipv4-tcpc-needs-linux-scatterlisth.patch acpi-enable-c3-power-state-on-dell-inspiron-8200.patch arch-x86-kernel-smpbootc-fix-warning.patch arch-x86-mm-pgtable_32c-remove-unused-variable-fixmaps.patch arch-x86-mm-init_64c-early_memtest-fix-types.patch drivers-media-video-cx18-cx18-av-firmwarec-fix-warning.patch drivers-media-video-uvc-uvc_v4l2c-suppress-uninitialized-var-warning.patch i2c-renesas-highlander-fpga-smbus-support.patch tick-schedc-suppress-needless-timer-reprogramming.patch git-jg-misc-git-rejects.patch drivers-scsi-broadsasc-fix-uninitialised-var-warning.patch documentation-build-source-files-in-documentation-sub-dir-disable.patch git-mips.patch mmc-sd-host-driver-for-ricoh-bay1controllers.patch sundance-set-carrier-status-on-link-change-events.patch update-smc91x-driver-with-arm-versatile-board-info.patch git-scsi-misc-fix-scsi_dh-build-errors.patch drivers-scsi-qla2xxx-qla_osc-suppress-uninitialized-var-warning.patch git-block-fix-drivers-block-pktcdvdc.patch pktcdvd-push-bkl-down-into-driver.patch git-unionfs.patch git-unionfs-fixup.patch git-logfs-fixup.patch drivers-usb-class-cdc-acmc-use-correct-type-for-cpu-flags.patch drivers-usb-class-cdc-acmc-fix-build-with-config_pm=n.patch drivers-usb-class-cdc-wdmc-fix-build-with-config_pm=n.patch watchdog-wdt501-pci-clean-up-coding-style-and-switch-to-unlocked_ioctl.patch git-xtensa.patch scsi-dpt_i2o-is-bust-on-ia64.patch mm-verify-the-page-links-and-memory-model.patch mspec-convert-nopfn-to-fault-fix.patch page-allocator-inlnie-some-__alloc_pages-wrappers-fix.patch kill-generic_file_direct_io-checkpatch-fixes.patch use-generic_access_phys-for-dev-mem-mappings-fix.patch spufs-use-the-new-vm_ops-access-fix.patch fix-soft-lock-up-at-nfs-mount-by-per-sb-lru-list-of-unused-dentries-fix.patch page-flags-record-page-flag-overlays-explicitly-xen.patch mapping_set_error-add-unlikely.patch huge-page-private-reservation-review-cleanups-fix.patch vma-page-offset-has-no-callees-drop-it.patch sync_file_range_write-may-and-will-block-document-that-fix.patch vmallocinfo-add-numa-information-fix.patch hugetlb-modular-state-for-hugetlb-page-size-checkpatch-fixes.patch hugetlb-multiple-hstates-for-multiple-page-sizes-checkpatch-fixes.patch hugetlb-override-default-huge-page-size-ia64-build.patch linux-next-revert-bootmem-add-return-value-to-reserve_bootmem_node.patch revert-linux-next-revert-bootmem-add-return-value-to-reserve_bootmem_node.patch revert-revert-linux-next-revert-bootmem-add-return-value-to-reserve_bootmem_node.patch revert-revert-revert-linux-next-revert-bootmem-add-return-value-to-reserve_bootmem_node.patch bootmem-add-debugging-framework-fix.patch bootmem-clean-up-free_all_bootmem_core-fix.patch bootmem-free-reserve-helpers-fix.patch revert-revert-revert-revert-linux-next-revert-bootmem-add-return-value-to-reserve_bootmem_node.patch bootmem-factor-out-the-marking-of-a-pfn-range-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-v850-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-powerpc-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-arm-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-mips-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-dvb.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-mtd-fix.patch page_align-correctly-handle-64-bit-values-on-32-bit-architectures-powerpc-fixes.patch mmu-notifiers-add-mm_take_all_locks-operation-checkpatch-fixes.patch mmu-notifier-core-checkpatch-fixes.patch mmu-notifier-core-fix.patch mmu-notifier-core-fix-2.patch vmscan-give-referenced-active-and-unmapped-pages-a-second-trip-around-the-lru.patch vm-dont-run-touch_buffer-during-buffercache-lookups.patch security-protect-legacy-apps-from-insufficient-privilege-cleanup.patch security-protect-legacy-applications-from-executing-with-insufficient-privilege-checkpatch-fixes.patch swsusp-provide-users-with-a-hint-about-the-no_console_suspend-option-fix.patch split-the-typecheck-macros-out-of-include-linux-kernelh.patch locking-add-typecheck-on-irqsave-and-friends-for-correct-flags.patch locking-add-typecheck-on-irqsave-and-friends-for-correct-flags-fix.patch remove-apparently-unused-fd1772h-header-file.patch lib-allow-memparse-to-accept-a-null-and-ignorable-second-parm-checkpatch-fixes.patch build-kernel-profileo-only-when-requested-cleanups.patch fs-partition-checkc-fix-return-value-warning-v2-cleanup.patch block-ioctlc-and-fs-partition-checkc-checkpatch-fixes.patch seq_file-fix-bug-when-seq_read-reads-nothing-fix.patch exec-remove-some-includes-fix.patch inflate-refactor-inflate-malloc-code-checkpatch-fixes.patch add-a-warn-macro-this-is-warn_on-printk-arguments-fix.patch flag-parameters-paccept-fix.patch flag-parameters-paccept-sys_ni.patch flag-parameters-anon_inode_getfd-extension-fix.patch flag-parameters-signalfd-fix.patch flag-parameters-eventfd-fix.patch flag-parameters-inotify_init-fix.patch flag-parameters-check-magic-constants-alpha.patch spi-au1550_spi-improve-pio-transfer-mode-checkpatch-fixes.patch gpio-gpio-driver-for-max7301-spi-gpio-expander-checkpatch-fixes.patch gpio-add-bt8xxgpio-driver-checkpatch-fixes.patch gpio-add-bt8xxgpio-driver-checkpatch-fixes-fix.patch gpio-add-bt8xxgpio-driver-checkpatch-fixes-cleanup.patch drivers-video-aty-radeon_basec-notify-user-if-sysfs_create_bin_file-failed-checkpatch-fixes.patch atmel_lcdfb-avoid-division-by-zero-checkpatch-fixes.patch lcd-add-platform_lcd-driver-fix.patch fsl-diu-fb-update-freescale-diu-driver-to-use-page_alloc_exact-fix.patch fbdev-add-new-cobalt-lcd-framebuffer-driver-fix.patch jbd-fix-race-between-free-buffer-and-commit-trasanction-checkpatch-fixes.patch jbd-fix-race-between-free-buffer-and-commit-trasanction-checkpatch-fixes-fix.patch ext3-handle-corrupted-orphan-list-at-mount-cleanup.patch ext3-handle-corrupted-orphan-list-at-mount-fix.patch ext3-handle-corrupted-orphan-list-at-mount-cleanup-fix.patch ext3-handle-deleting-corrupted-indirect-blocks-fix.patch jbd-dont-abort-if-flushing-file-data-failed-fix.patch reiserfs-convert-j_flush_sem-to-mutex.patch reiserfs-convert-j_commit_lock-to-mutex-checkpatch-fixes.patch quota-move-function-macros-from-quotah-to-quotaopsh-jfs-fix.patch quota-move-function-macros-from-quotah-to-quotaopsh-jfs-fix-fix.patch cgroup_clone-use-pid-of-newly-created-task-for-new-cgroup-fix.patch cgroup_clone-use-pid-of-newly-created-task-for-new-cgroup-checkpatch-fixes.patch memcg-remove-refcnt-from-page_cgroup-fix-2.patch workqueues-make-get_online_cpus-useable-for-work-func-fix.patch jbd2-fix-race-between-jbd2_journal_try_to_free_buffers-and-jbd2-commit-transaction-cleanup.patch ipc-semc-convert-undo-structures-to-struct-list_head-checkpatch-fixes.patch ipc-semc-convert-sem_arraysem_pending-to-struct-list_head-checkpatch-fixes.patch ipc-semc-rewrite-undo-list-locking-checkpatch-fixes.patch getdelaysc-add-a-usr1-signal-handler-checkpatch-fixes.patch edac-mpc85xx-fix-pci-ofdev-2nd-pass-checkpatch-fixes.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-sge-fix.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-svc_rdma-fix.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-bnx2x.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-sparc32.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-s2io.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-pasemi_mac.patch dma-mapping-x86-per-device-dma_mapping_ops-support-fix.patch x86-calgary-fix-handling-of-devices-that-arent-behind-the-calgary-checkpatch-fixes.patch tpm-increase-size-of-internal-tpm-response-buffers-checkpatch-fixes.patch memstick-allow-set_param-method-to-return-an-error-code-checkpatch-fixes.patch memstick-use-fully-asynchronous-request-processing-fix.patch full-conversion-to-early_initcall-interface-remove-old-interface-cleanup.patch full-conversion-to-early_initcall-interface-remove-old-interface-fix.patch ppc-use-the-common-ascii-hex-helpers-fix.patch gcov-architecture-specific-compile-flag-adjustments-powerpc-moved-stuff.patch mm-introduce-get_user_pages_fast-fix.patch mm-introduce-get_user_pages_fast-checkpatch-fixes.patch x86-lockless-get_user_pages_fast-checkpatch-fixes.patch x86-lockless-get_user_pages_fast-fix.patch x86-lockless-get_user_pages_fast-fix-2.patch x86-lockless-get_user_pages_fast-fix-2-fix-fix.patch x86-lockless-get_user_pages_fast-fix-warning.patch vmscan-move-isolate_lru_page-to-vmscanc-fix.patch define-page_file_cache-function-fix.patch vmscan-split-lru-lists-into-anon-file-sets-units-fix.patch unevictable-lru-infrastructure-fix.patch unevictable-lru-page-statistics-units-fix.patch mlock-mlocked-pages-are-unevictable-fix.patch mlock-mlocked-pages-are-unevictable-fix-fix.patch mlock-mlocked-pages-are-unevictable-fix-3.patch mmap-handle-mlocked-pages-during-map-remap-unmap-cleanup.patch vmscan-unevictable-lru-scan-sysctl-nommu-fix.patch video-console-sticonrec-make-code-static-checkpatch-fixes.patch reiser4.patch reiser4-tree_lock-fixes.patch reiser4-tree_lock-fixes-fix.patch reiser4-semaphore-fix.patch page-owner-tracking-leak-detector.patch nr_blockdev_pages-in_interrupt-warning.patch slab-leaks3-default-y.patch put_bh-debug.patch shrink_slab-handle-bad-shrinkers.patch getblk-handle-2tb-devices.patch getblk-handle-2tb-devices-fix.patch undeprecate-pci_find_device.patch notify_change-callers-must-hold-i_mutex.patch profile-likely-unlikely-macros.patch drivers-net-bonding-bond_sysfsc-suppress-uninitialized-var-warning.patch w1-build-fix.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html