On 2012-03-24 17:26, Lee Essen wrote:
> sigbus_reraise is used by the kvm_wait_io_event function and is
> needed on both Linux and Solaris. This patch adds CONFIG_SOLARIS
> to the current CONFIG_LINUX only ifdef.
> 
> Signed-off-by: Lee Essen <lee.es...@nowonline.co.uk>
> ---
>  cpus.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/cpus.c b/cpus.c
> index 25ba621..6550f22 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -455,7 +455,7 @@ static void cpu_signal(int sig)
>      exit_request = 1;
>  }
>  
> -#ifdef CONFIG_LINUX
> +#if defined(CONFIG_LINUX) || defined(CONFIG_SOLARIS)
>  static void sigbus_reraise(void)
>  {
>      sigset_t set;
> @@ -491,7 +491,9 @@ static void qemu_init_sigbus(void)
>      action.sa_sigaction = (void (*)(int, siginfo_t*, void*))sigbus_handler;
>      sigaction(SIGBUS, &action, NULL);
>  
> +#if defined(CONFIG_LINUX)
>      prctl(PR_MCE_KILL, PR_MCE_KILL_SET, PR_MCE_KILL_EARLY, 0, 0);
> +#endif

BTW, this looks suspicious. Are you sure Solaris delivers a compatible
SIGBUS with all the information KVM needs to translate it to a MCE? That
is not a KVM subsystem feature, it's a kernel feature that Solaris would
either have to provide in the same way as Linux, or you need some glue
code to translate the differences.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

Reply via email to