From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH] KVM: x86: tweak types of fields in kvm_lapic_irq
Date: Wed, 22 Apr 2015 11:35:43 +0200 [thread overview]
Message-ID: <20150422093542.GA30285@potion.brq.redhat.com> (raw)
In-Reply-To: <1429635686-82328-1-git-send-email-pbonzini@redhat.com>
2015-04-21 19:01+0200, Paolo Bonzini:
> Change to u16 if they only contain data in the low 16 bits.
>
> Change the level field to bool, since we assign 1 sometimes, but
> just mask icr_low with APIC_INT_ASSERT in apic_send_ipi.
Would be more consistent to change that assignment instead ...
If we dropped the idea that struct kvm_lapic_irq fields can be bitORed
to get the ICR, we could also easily change trig_mode/dest_mode to bool
level_trig/logical_dest. (I can do a followup patch.)
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> arch/x86/include/asm/kvm_host.h | 8 ++++----
> arch/x86/kvm/lapic.c | 2 +-
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> index 3a19e30f0be0..dc83b43d0850 100644
> --- a/arch/x86/include/asm/kvm_host.h
> +++ b/arch/x86/include/asm/kvm_host.h
> @@ -689,10 +689,10 @@ struct msr_data {
>
> struct kvm_lapic_irq {
> u32 vector;
Vector can be u8.
> - u32 delivery_mode;
> - u32 dest_mode;
> - u32 level;
> - u32 trig_mode;
> + u16 delivery_mode;
> + u16 dest_mode;
> + bool level;
> + u16 trig_mode;
I'd prefer to have the u8 vector as well, but it works,
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
> u32 shorthand;
> u32 dest_id;
> };
> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> index abf165330881..ba585d0c42c5 100644
> --- a/arch/x86/kvm/lapic.c
> +++ b/arch/x86/kvm/lapic.c
> @@ -914,7 +914,7 @@ static void apic_send_ipi(struct kvm_lapic *apic)
> irq.vector = icr_low & APIC_VECTOR_MASK;
> irq.delivery_mode = icr_low & APIC_MODE_MASK;
> irq.dest_mode = icr_low & APIC_DEST_MASK;
> - irq.level = icr_low & APIC_INT_ASSERT;
> + irq.level = (icr_low & APIC_INT_ASSERT) != 0;
> irq.trig_mode = icr_low & APIC_INT_LEVELTRIG;
> irq.shorthand = icr_low & APIC_SHORT_MASK;
> if (apic_x2apic_mode(apic))
> --
> 1.8.3.1
>
next prev parent reply other threads:[~2015-04-22 9:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-21 17:01 [PATCH] KVM: x86: tweak types of fields in kvm_lapic_irq Paolo Bonzini
2015-04-22 9:35 ` Radim Krčmář [this message]
2015-04-22 10:27 ` Paolo Bonzini
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=20150422093542.GA30285@potion.brq.redhat.com \
--to=rkrcmar@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.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.