On Sat, 5 Jul 2008 05:07:02 +0400 "Alexey Dobriyan" <adobriyan@gmail.com> wrote:Geeze you're picky! If everyone was like you we wouldn't need that nice oops-printing code. Below Can't find what you're referring to here. Where? Will have a shot. From: Andrew Morton <akpm@linux-foundation.org> - 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) Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- 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 { _ --
| Al Boldi | Re: [ck] Re: [ANNOUNCE] RSDL completely fair starvation free interactive cpu sched... |
| Ingo Molnar | Re: [patch] sched_clock(): cleanups |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Amit K. Arora | [RFC] Heads up on sys_fallocate() |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 18/37] dccp: Support for Mandatory options |
| Denys Vlasenko | [PATCH 1/2] bnx2: factor out gzip unpacker |
