On 16 December 2013 14:12, James Hogan <james.ho...@imgtec.com> wrote:
> From: Sanjay Lal <sanj...@kymasys.com>
>
> MIPS/Linux is unusual in having 128 signals rather than just 64 like
> most other architectures. This means its sigmask is 16 bytes instead of
> 8, so correct kvm_set_signal_mask to pass the correct sigmask->len to
> KVM_SET_SIGNAL_MASK.
>
> Signed-off-by: Sanjay Lal <sanj...@kymasys.com>
> Signed-off-by: James Hogan <james.ho...@imgtec.com>
> Cc: Gleb Natapov <g...@redhat.com>
> Cc: Paolo Bonzini <pbonz...@redhat.com>
> ---
> Changes in v2:
>  - Expand commit message
>  - Reword comment
> ---
>  kvm-all.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/kvm-all.c b/kvm-all.c
> index 4478969..c831326 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -2044,7 +2044,12 @@ int kvm_set_signal_mask(CPUState *cpu, const sigset_t 
> *sigset)
>
>      sigmask = g_malloc(sizeof(*sigmask) + sizeof(*sigset));
>
> +#ifdef TARGET_MIPS
> +    /* MIPS has 128 signals */
> +    sigmask->len = 16;
> +#else
>      sigmask->len = 8;
> +#endif
>      memcpy(sigmask->sigset, sigset, sizeof(*sigset));
>      r = kvm_vcpu_ioctl(cpu, KVM_SET_SIGNAL_MASK, sigmask);
>      g_free(sigmask);

kvm-all.c is mostly free of TARGET_FOO ifdefs; I think maybe
it would be better to have the signal mask length be something
the target-specific code configures in kvm_arch_init().

thanks
-- PMM

Reply via email to