qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH 2/4] linux-user: cleanup signal.c


From: Taylor Simpson
Subject: RE: [PATCH 2/4] linux-user: cleanup signal.c
Date: Mon, 3 Feb 2020 22:58:18 +0000


> -----Original Message-----
> From: Laurent Vivier <address@hidden>
> Sent: Saturday, February 1, 2020 6:28 AM
> To: address@hidden
> Cc: Josh Kunz <address@hidden>; address@hidden; Matus Kysel
> <address@hidden>; Aleksandar Markovic <aleksandar.markovic@rt-
> rk.com>; Marlies Ruck <address@hidden>; Laurent Vivier
> <address@hidden>; Peter Maydell <address@hidden>; Taylor
> Simpson <address@hidden>; Riku Voipio <address@hidden>
> Subject: [PATCH 2/4] linux-user: cleanup signal.c
>
> -------------------------------------------------------------------------
> CAUTION: This email originated from outside of the organization.
> -------------------------------------------------------------------------
>
> No functionnal changes. Prepare the field for future fixes.


Spelling error

>
> Remove memset(.., 0, ...) that is useless on a static array
>
> Signed-off-by: Laurent Vivier <address@hidden>
> ---
>  linux-user/signal.c | 37 ++++++++++++++++++++++---------------
>  1 file changed, 22 insertions(+), 15 deletions(-)
>
> diff --git a/linux-user/signal.c b/linux-user/signal.c index
> 5ca6d62b15d3..f42a2e1a82a5 100644
> --- a/linux-user/signal.c
> +++ b/linux-user/signal.c
> @@ -66,12 +66,6 @@ static uint8_t host_to_target_signal_table[_NSIG] = {
>      [SIGPWR] = TARGET_SIGPWR,
>      [SIGSYS] = TARGET_SIGSYS,
>      /* next signals stay the same */
> -    /* Nasty hack: Reverse SIGRTMIN and SIGRTMAX to avoid overlap with
> -       host libpthread signals.  This assumes no one actually uses SIGRTMAX 
> :-/
> -       To fix this properly we need to do manual signal delivery multiplexed
> -       over a single host signal.  */
> -    [__SIGRTMIN] = __SIGRTMAX,
> -    [__SIGRTMAX] = __SIGRTMIN,
>  };
>  static uint8_t target_to_host_signal_table[_NSIG];
>
> @@ -480,13 +474,18 @@ static int core_dump_signal(int sig)
>      }
>  }
>
> -void signal_init(void)
> +static void signal_table_init(void)
>  {
> -    TaskState *ts = (TaskState *)thread_cpu->opaque;
> -    struct sigaction act;
> -    struct sigaction oact;
>      int i, j;
> -    int host_sig;
> +
> +    /*
> +     * Nasty hack: Reverse SIGRTMIN and SIGRTMAX to avoid overlap with
> +     * host libpthread signals.  This assumes no one actually uses SIGRTMAX 
> :-
> /
> +     * To fix this properly we need to do manual signal delivery multiplexed
> +     * over a single host signal.
> +     */
> +    host_to_target_signal_table[__SIGRTMIN] = __SIGRTMAX;
> +    host_to_target_signal_table[__SIGRTMAX] = __SIGRTMIN;
>
>      /* generate signal conversion tables */
>      for(i = 1; i < _NSIG; i++) {
> @@ -497,14 +496,22 @@ void signal_init(void)
>          j = host_to_target_signal_table[i];

Since you are cleaning up this code, let's give this a more descriptive name - 
target_sig would be consistent with host_sig used elsewhere.

>          target_to_host_signal_table[j] = i;
>      }
> +}
> +
> +void signal_init(void)
> +{
> +    TaskState *ts = (TaskState *)thread_cpu->opaque;
> +    struct sigaction act;
> +    struct sigaction oact;
> +    int i;
> +    int host_sig;
> +
> +    /* initialize signal conversion tables */
> +    signal_table_init();
>
>      /* Set the signal mask from the host mask. */
>      sigprocmask(0, 0, &ts->signal_mask);
>
> -    /* set all host signal handlers. ALL signals are blocked during
> -       the handlers to serialize them. */
> -    memset(sigact_table, 0, sizeof(sigact_table));
> -
>      sigfillset(&act.sa_mask);
>      act.sa_flags = SA_SIGINFO;
>      act.sa_sigaction = host_signal_handler;
> --
> 2.24.1
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]