linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: george anzinger <george@mvista.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Linus <torvalds@transmeta.com>,
	LKML <linux-kernel@vger.kernel.org>, Jeff Dike <jdike@karaya.com>
Subject: Re: [PATCH] make do_signal static on i386
Date: Wed, 09 Oct 2002 10:40:39 -0700	[thread overview]
Message-ID: <3DA46A17.447B2C59@mvista.com> (raw)
In-Reply-To: 20021009181003.022da660.sfr@canb.auug.org.au

This will cause problems for nano_sleep and
clock_nanosleep.  These system calls need to call
do_signal() in order to meet the POSIX standard which states
that they are interrupted only by signals that are delivered
to user code.  Other signals are not to interrupt the
sleep.  This is why do_signal() returns this information to
the caller.

I suppose one could argue that such functions should be in
signal.c, but save for this signal issue the code is
common.  Seems a waste to support the same code in N
platforms.

-g

Stephen Rothwell wrote:
> 
> Hi Linus,
> 
> This patch makes do_signal static in arch/i386/kernel/signal.c which
> means its declaration can be removed from asm-i386/signal.h which may
> help Jeff out with UML.
> 
> I am not sure whether we need the FASTCALL() or whether the change
> in the comment in asm-um/signal.h makes sense.  (Does UML work on
> x86_64, yet?)
> 
> --
> Cheers,
> Stephen Rothwell                    sfr@canb.auug.org.au
> http://www.canb.auug.org.au/~sfr/
> 
> diff -ruN 2.5.41-1.715/arch/i386/kernel/signal.c 2.5.41-1.715-si.1/arch/i386/kernel/signal.c
> --- 2.5.41-1.715/arch/i386/kernel/signal.c      2002-10-02 11:23:54.000000000 +1000
> +++ 2.5.41-1.715-si.1/arch/i386/kernel/signal.c 2002-10-09 17:52:15.000000000 +1000
> @@ -27,6 +27,8 @@
> 
>  #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
> 
> +static int FASTCALL(do_signal(struct pt_regs *regs, sigset_t *oldset));
> +
>  /*
>   * Atomically swap in the new signal mask, and wait for a signal.
>   */
> @@ -545,7 +547,7 @@
>   * want to handle. Thus you cannot kill init even with a SIGKILL even by
>   * mistake.
>   */
> -int do_signal(struct pt_regs *regs, sigset_t *oldset)
> +static int do_signal(struct pt_regs *regs, sigset_t *oldset)
>  {
>         siginfo_t info;
>         int signr;
> diff -ruN 2.5.41-1.715/include/asm-i386/signal.h 2.5.41-1.715-si.1/include/asm-i386/signal.h
> --- 2.5.41-1.715/include/asm-i386/signal.h      2002-01-31 07:12:46.000000000 +1100
> +++ 2.5.41-1.715-si.1/include/asm-i386/signal.h 2002-10-09 17:54:28.000000000 +1000
> @@ -2,7 +2,6 @@
>  #define _ASMi386_SIGNAL_H
> 
>  #include <linux/types.h>
> -#include <linux/linkage.h>
> 
>  /* Avoid too many header ordering problems.  */
>  struct siginfo;
> @@ -217,9 +216,6 @@
>         return word;
>  }
> 
> -struct pt_regs;
> -extern int FASTCALL(do_signal(struct pt_regs *regs, sigset_t *oldset));
> -
>  #endif /* __KERNEL__ */
> 
>  #endif
> diff -ruN 2.5.41-1.715/include/asm-um/signal.h 2.5.41-1.715-si.1/include/asm-um/signal.h
> --- 2.5.41-1.715/include/asm-um/signal.h        2002-09-16 13:40:57.000000000 +1000
> +++ 2.5.41-1.715-si.1/include/asm-um/signal.h   2002-10-09 17:56:20.000000000 +1000
> @@ -6,7 +6,7 @@
>  #ifndef __UM_SIGNAL_H
>  #define __UM_SIGNAL_H
> 
> -/* Need to kill the do_signal() declaration in the i386 signal.h */
> +/* Need to kill the do_signal() declaration in the x86_64 signal.h */
> 
>  #define do_signal do_signal_renamed
>  #include "asm/arch/signal.h"
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
George Anzinger   george@mvista.com
High-res-timers: 
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml

  parent reply	other threads:[~2002-10-09 17:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-09  8:10 [PATCH] make do_signal static on i386 Stephen Rothwell
2002-10-09 11:30 ` Jeff Dike
2002-10-09 17:40 ` george anzinger [this message]
2002-10-09 19:37   ` Daniel Jacobowitz
2002-10-09 20:22     ` george anzinger
     [not found] <20021009181003.022da660.sfr@canb.auug.org.au.suse.lists.linux.kernel>
2002-10-09  8:18 ` Andi Kleen
2002-10-10  7:23 Pavel Machek

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=3DA46A17.447B2C59@mvista.com \
    --to=george@mvista.com \
    --cc=jdike@karaya.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sfr@canb.auug.org.au \
    --cc=torvalds@transmeta.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).