All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@au1.ibm.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Max Filippov <jcmvbkbc@gmail.com>, Takashi Iwai <tiwai@suse.de>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	opensuse-factory@opensuse.org,
	OpenSUSE Kernel Team <opensuse-kernel@opensuse.org>
Subject: Re: [opensuse-factory] Re: [opensuse-kernel] libsigsegv build fail with kernel 3.18.3
Date: Mon, 02 Feb 2015 11:23:57 +1100	[thread overview]
Message-ID: <1422836637.17302.9.camel@au1.ibm.com> (raw)
In-Reply-To: <CA+55aFzQ5QEZ1AYauWviq1gp5j=mqByAtt4fpteeK7amuxcyjw@mail.gmail.com>

On Thu, 2015-01-29 at 10:16 -0800, Linus Torvalds wrote:
> diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
> index eb79907f34fa..6154b0a2b063 100644
> --- a/arch/powerpc/mm/fault.c
> +++ b/arch/powerpc/mm/fault.c
> @@ -437,6 +437,8 @@ good_area:
>          */
>         fault = handle_mm_fault(mm, vma, address, flags);
>         if (unlikely(fault & (VM_FAULT_RETRY|VM_FAULT_ERROR))) {
> +               if (fault & VM_FAULT_SIGSEGV)
> +                       goto bad_area;
>                 rc = mm_fault_error(regs, address, fault);
>                 if (rc >= MM_FAULT_RETURN)
>                         goto bail;

I prefer having the test inside mm_fault_error(), even if that makes the
patch a bit bigger, it keeps the logic in a single place. Untested
patch:

--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -184,6 +184,12 @@ static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
 		return MM_FAULT_RETURN;
 	}
 
+	/* Other faults */
+
+	if (fault & VM_FAULT_SIGSEGV) {
+		up_read(&current->mm->mmap_sem);
+		return MM_FAULT_ERR(SIGSEGV);
+	}
 	if (fault & (VM_FAULT_SIGBUS|VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE))
 		return do_sigbus(regs, addr, fault);
 


Cheers,
Ben.

  reply	other threads:[~2015-02-02  0:25 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1422361485.6648.71.camel@opensuse.org>
     [not found] ` <54C78756.9090605@suse.cz>
     [not found]   ` <alpine.LSU.2.11.1501271347440.30227@nerf60.vanv.qr>
     [not found]     ` <1422364084.6648.82.camel@opensuse.org>
     [not found]       ` <s5h7fw8hvdp.wl-tiwai@suse.de>
     [not found]         ` <CA+55aFyzy_wYHHnr2gDcYr7qcgOKM2557bRdg6RBa=cxrynd+Q@mail.gmail.com>
2015-01-27 20:57           ` [opensuse-factory] Re: [opensuse-kernel] libsigsegv build fail with kernel 3.18.3 Linus Torvalds
     [not found]             ` <CA+55aFxRnj97rpSQvvzLJhpo7C8TQ-F=eB1Ry2n53AV1rN8mwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-28  7:38               ` [opensuse-factory] " Heiko Carstens
2015-01-28  7:38                 ` [opensuse-factory] Re: [opensuse-kernel] " Heiko Carstens
2015-01-29  6:59             ` Max Filippov
2015-01-29 18:16               ` Linus Torvalds
2015-02-02  0:23                 ` Benjamin Herrenschmidt [this message]
2015-02-02  1:09                   ` Linus Torvalds
2015-02-22 23:50                     ` Benjamin Herrenschmidt
2015-02-22 23:50                       ` [opensuse-factory] " Benjamin Herrenschmidt
2015-02-28  7:12                     ` Generic page fault (Was: libsigsegv ....) Benjamin Herrenschmidt
2015-02-28  7:14                       ` Benjamin Herrenschmidt
2015-02-28  7:14                         ` Benjamin Herrenschmidt
2015-02-28 10:36                         ` Benjamin Herrenschmidt
2015-02-28 10:36                           ` Benjamin Herrenschmidt
2015-02-28 19:56                       ` Linus Torvalds
2015-02-28 19:56                         ` Linus Torvalds
2015-02-28 19:58                         ` Linus Torvalds
2015-02-28 19:58                           ` Linus Torvalds
2015-02-28 21:14                         ` Benjamin Herrenschmidt
2015-02-28 21:14                           ` Benjamin Herrenschmidt
2015-02-28 21:49                           ` Linus Torvalds
2015-02-28 21:49                             ` Linus Torvalds
2015-02-28 22:49                             ` Benjamin Herrenschmidt
2015-02-28 22:49                               ` Benjamin Herrenschmidt
2015-02-28 22:16                           ` Benjamin Herrenschmidt
2015-02-28 22:16                             ` Benjamin Herrenschmidt
2015-02-28 22:50                             ` Benjamin Herrenschmidt
2015-02-28 22:50                               ` Benjamin Herrenschmidt
2015-02-28 23:02                             ` Benjamin Herrenschmidt
2015-02-28 23:02                               ` Benjamin Herrenschmidt
2015-03-01  0:41                               ` Linus Torvalds
2015-03-01  0:41                                 ` Linus Torvalds
2015-03-01  3:57                                 ` Benjamin Herrenschmidt
2015-03-01  3:57                                   ` Benjamin Herrenschmidt
     [not found]           ` <CA+55aFyzy_wYHHnr2gDcYr7qcgOKM2557bRdg6RBa=cxrynd+Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-27 21:12             ` [opensuse-factory] Re: libsigsegv build fail with kernel 3.18.3 Jan Engelhardt
2015-01-27 21:12               ` [opensuse-factory] Re: [opensuse-kernel] " Jan Engelhardt
2015-01-27 21:32               ` Linus Torvalds
2015-01-27 22:14                 ` Jan Engelhardt
2015-01-27 22:32                   ` Linus Torvalds
2015-01-27 23:13                     ` Jan Engelhardt
2015-01-27 23:53                     ` David Miller
     [not found]                     ` <CA+55aFzguEFfG2REN1soMC+0UJ7GtANfEvMoCNPt0QqmP9LKoA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-28  8:48                       ` [opensuse-factory] " Andreas Schwab
2015-01-28  8:48                         ` [opensuse-factory] Re: [opensuse-kernel] " Andreas Schwab

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=1422836637.17302.9.camel@au1.ibm.com \
    --to=benh@au1.ibm.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=opensuse-factory@opensuse.org \
    --cc=opensuse-kernel@opensuse.org \
    --cc=tiwai@suse.de \
    --cc=torvalds@linux-foundation.org \
    /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.