From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Cc: Scott Wood <scottwood@freescale.com>,
"linuxppc-dev@ozlabs.org" <linuxppc-dev@ozlabs.org>,
Rex Feany <RFeany@mrv.com>
Subject: Re: [PATCH 0/6] PowerPc 8xx TLB/MMU fixes
Date: Tue, 06 Oct 2009 12:52:15 +1100 [thread overview]
Message-ID: <1254793935.1959.1.camel@pasglop> (raw)
In-Reply-To: <OF2DE63E1A.21EA8BF0-ONC1257646.0082A7F0-C1257646.0082E281@transmode.se>
\
> So how does this look? Does it change anything?
> It should as the previous way was way off :(
>
> diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
> index c33c6de..08a392f 100644
> --- a/arch/powerpc/mm/fault.c
> +++ b/arch/powerpc/mm/fault.c
> @@ -153,7 +153,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
> #ifdef DEBUG_DCBX
> const char *istr = NULL;
>
> - insn = *((unsigned long *)regs->nip);
> + __get_user(insn, (unsigned long __user *)regs->nip);
No, use get_user() not __get_user() or if you use the later, also use
access_ok(), and test the result in case it errors (if it does, you
probably want to just goto bad access and SEGV).
Cheers,
Ben.
> if (((insn >> (31-5)) & 0x3f) == 31) {
> if (((insn >> 1) & 0x3ff) == 1014) /* dcbz ? 0x3f6 */
> istr = "dcbz";
> @@ -178,11 +178,12 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
> ra, rb, dar);
> is_write = 0;
> }
> -
> +#if 0
> if (trap == 0x300 && address != dar) {
> __asm__ ("mtdar %0" : : "r" (dar));
> return 0;
> }
> +#endif
> }
> }
> #endif
> @@ -191,7 +192,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
>
> /* This is from a dcbX or icbi insn gone bad, these
> * insn do not set DAR so we have to do it here instead */
> - insn = *((unsigned long *)regs->nip);
> + __get_user(insn, (unsigned long __user *)regs->nip);
>
> ra = (insn >> (31-15)) & 0x1f; /* Reg RA */
> rb = (insn >> (31-20)) & 0x1f; /* Reg RB */
>
>
next prev parent reply other threads:[~2009-10-06 1:52 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-05 12:16 [PATCH 0/6] PowerPc 8xx TLB/MMU fixes Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 1/6] 8xx: DTLB Error must check for more errors Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 2/6] 8xx, fault: Add some debug code to do_page_fault() Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 3/6] 8xx: get rid of _PAGE_HWWRITE dependency in MMU Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 4/6] 8xx: Tag DAR with 0x00f0 to catch buggy instructions Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 5/6] 8xx: Fixup DAR from buggy dcbX instructions Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 6/6] 8xx: start using dcbX instructions in various copy routines Joakim Tjernlund
2009-10-05 20:17 ` [PATCH 3/6] 8xx: get rid of _PAGE_HWWRITE dependency in MMU Benjamin Herrenschmidt
2009-10-05 21:25 ` Joakim Tjernlund
2009-10-05 21:37 ` Benjamin Herrenschmidt
2009-10-05 22:00 ` Joakim Tjernlund
2009-10-05 22:09 ` Benjamin Herrenschmidt
2009-10-05 22:55 ` Joakim Tjernlund
2009-10-05 23:15 ` Benjamin Herrenschmidt
2009-10-05 23:35 ` Joakim Tjernlund
2009-10-06 0:34 ` Benjamin Herrenschmidt
2009-10-06 6:15 ` Joakim Tjernlund
2009-10-06 6:45 ` Benjamin Herrenschmidt
2009-10-06 7:54 ` Joakim Tjernlund
2009-10-06 15:40 ` Joakim Tjernlund
2009-10-06 17:28 ` Joakim Tjernlund
2009-10-06 22:05 ` Joakim Tjernlund
2009-10-06 23:25 ` Benjamin Herrenschmidt
2009-10-07 1:07 ` Benjamin Herrenschmidt
2009-10-07 7:47 ` Joakim Tjernlund
2009-10-05 18:12 ` [PATCH 0/6] PowerPc 8xx TLB/MMU fixes Scott Wood
2009-10-05 18:27 ` Joakim Tjernlund
2009-10-05 20:09 ` Scott Wood
2009-10-05 21:04 ` Joakim Tjernlund
2009-10-05 21:31 ` Benjamin Herrenschmidt
2009-10-05 21:41 ` Joakim Tjernlund
2009-10-05 21:46 ` Scott Wood
2009-10-05 21:31 ` Scott Wood
2009-10-05 22:04 ` Rex Feany
2009-10-05 22:31 ` Joakim Tjernlund
2009-10-05 22:37 ` Benjamin Herrenschmidt
2009-10-05 22:58 ` Joakim Tjernlund
2009-10-05 23:49 ` Joakim Tjernlund
2009-10-06 1:52 ` Benjamin Herrenschmidt [this message]
2009-10-06 8:06 ` Joakim Tjernlund
2009-10-06 8:32 ` Benjamin Herrenschmidt
2009-10-06 10:58 ` Joakim Tjernlund
2009-10-06 11:06 ` Benjamin Herrenschmidt
2009-10-06 11:39 ` Joakim Tjernlund
2009-10-06 13:18 ` Joakim Tjernlund
2009-10-05 22:42 ` Rex Feany
2009-10-05 23:00 ` Joakim Tjernlund
2009-10-06 6:25 ` Joakim Tjernlund
2009-10-06 6:44 ` Benjamin Herrenschmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1254793935.1959.1.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=RFeany@mrv.com \
--cc=joakim.tjernlund@transmode.se \
--cc=linuxppc-dev@ozlabs.org \
--cc=scottwood@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.