All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>,
	Kumar Gala <galak@kernel.crashing.org>,
	Liu Yu <yu.liu@freescale.com>, Roland McGrath <roland@redhat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] powerpc: _exception: kill the obsolete code under is_global_init()
Date: Wed, 11 Nov 2009 12:12:54 +1100	[thread overview]
Message-ID: <1257901974.2140.11.camel@pasglop> (raw)
In-Reply-To: <20091110002542.GA1312@redhat.com>

On Tue, 2009-11-10 at 01:25 +0100, Oleg Nesterov wrote:
> The code under "if (is_global_init())" is bogus, and is_global_init()
> itself is not right in mt case.
> 
> Contrary to what the comment says, nowadays force_sig_info() does kill
> init even if the handler is SIG_DFL. Note that force_sig_info() clears
> SIGNAL_UNKILLABLE exactly for this case.
> 
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
> ---

Thanks. I'll take that one.

Cheers,
Ben.

>  arch/powerpc/kernel/traps.c |   22 ----------------------
>  1 file changed, 22 deletions(-)
> 
> --- TH/arch/powerpc/kernel/traps.c~PPC_EXCEPTION_DONT_CK_INIT	2009-11-10 01:03:23.000000000 +0100
> +++ TH/arch/powerpc/kernel/traps.c	2009-11-10 01:06:41.000000000 +0100
> @@ -198,28 +198,6 @@ void _exception(int signr, struct pt_reg
>  	info.si_code = code;
>  	info.si_addr = (void __user *) addr;
>  	force_sig_info(signr, &info, current);
> -
> -	/*
> -	 * Init gets no signals that it doesn't have a handler for.
> -	 * That's all very well, but if it has caused a synchronous
> -	 * exception and we ignore the resulting signal, it will just
> -	 * generate the same exception over and over again and we get
> -	 * nowhere.  Better to kill it and let the kernel panic.
> -	 */
> -	if (is_global_init(current)) {
> -		__sighandler_t handler;
> -
> -		spin_lock_irq(&current->sighand->siglock);
> -		handler = current->sighand->action[signr-1].sa.sa_handler;
> -		spin_unlock_irq(&current->sighand->siglock);
> -		if (handler == SIG_DFL) {
> -			/* init has generated a synchronous exception
> -			   and it doesn't have a handler for the signal */
> -			printk(KERN_CRIT "init has generated signal %d "
> -			       "but has no handler for it\n", signr);
> -			do_exit(signr);
> -		}
> -	}
>  }
>  
>  #ifdef CONFIG_PPC64



      reply	other threads:[~2009-11-11  1:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-10  0:25 [PATCH] powerpc: _exception: kill the obsolete code under is_global_init() Oleg Nesterov
2009-11-11  1:12 ` Benjamin Herrenschmidt [this message]

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=1257901974.2140.11.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=Geert.Uytterhoeven@sonycom.com \
    --cc=akpm@linux-foundation.org \
    --cc=galak@kernel.crashing.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=roland@redhat.com \
    --cc=yu.liu@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.