All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Cao jin <caoj.fnst@cn.fujitsu.com>
Cc: qemu-devel@nongnu.org, Dmitry Fleytman <dmitry@daynix.com>,
	Marcel Apfelbaum <marcel@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v3 8/8] vmxnet3: remove unnecessary internal msix state flag
Date: Thu, 29 Sep 2016 16:42:32 +0200	[thread overview]
Message-ID: <87k2du7oo7.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <1473839464-8670-9-git-send-email-caoj.fnst@cn.fujitsu.com> (Cao jin's message of "Wed, 14 Sep 2016 15:51:04 +0800")

Cao jin <caoj.fnst@cn.fujitsu.com> writes:

> The corresponding msi flag is already dropped in commit 1070048e.

Repeating the rationale for the change wouldn't hurt:

    Internal flag msix_used is unnecessary, it has the same effect as
    msix_enabled().

    The corresponding msi flag is already dropped in commit 1070048e.

Can hopefully be touched up on commit.

>
> CC: Dmitry Fleytman <dmitry@daynix.com>
> CC: Jason Wang <jasowang@redhat.com>
> CC: Michael S. Tsirkin <mst@redhat.com>
> CC: Markus Armbruster <armbru@redhat.com>
> CC: Marcel Apfelbaum <marcel@redhat.com>
> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
> ---
>  hw/net/vmxnet3.c | 38 ++++++++++++++------------------------
>  1 file changed, 14 insertions(+), 24 deletions(-)
>
> diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
> index 7d44af1..1decb53 100644
> --- a/hw/net/vmxnet3.c
> +++ b/hw/net/vmxnet3.c
> @@ -281,8 +281,6 @@ typedef struct {
>          Vmxnet3RxqDescr rxq_descr[VMXNET3_DEVICE_MAX_RX_QUEUES];
>          Vmxnet3TxqDescr txq_descr[VMXNET3_DEVICE_MAX_TX_QUEUES];
>  
> -        /* Whether MSI-X support was installed successfully */
> -        bool msix_used;
>          hwaddr drv_shmem;
>          hwaddr temp_shared_guest_driver_memory;
>  
> @@ -359,7 +357,7 @@ static bool _vmxnet3_assert_interrupt_line(VMXNET3State *s, uint32_t int_idx)
>  {
>      PCIDevice *d = PCI_DEVICE(s);
>  
> -    if (s->msix_used && msix_enabled(d)) {
> +    if (msix_enabled(d)) {
>          VMW_IRPRN("Sending MSI-X notification for vector %u", int_idx);
>          msix_notify(d, int_idx);
>          return false;
> @@ -383,7 +381,7 @@ static void _vmxnet3_deassert_interrupt_line(VMXNET3State *s, int lidx)
>       * This function should never be called for MSI(X) interrupts
>       * because deassertion never required for message interrupts
>       */
> -    assert(!s->msix_used || !msix_enabled(d));
> +    assert(!msix_enabled(d));
>      /*
>       * This function should never be called for MSI(X) interrupts
>       * because deassertion never required for message interrupts
> @@ -421,7 +419,7 @@ static void vmxnet3_trigger_interrupt(VMXNET3State *s, int lidx)
>      s->interrupt_states[lidx].is_pending = true;
>      vmxnet3_update_interrupt_line_state(s, lidx);
>  
> -    if (s->msix_used && msix_enabled(d) && s->auto_int_masking) {
> +    if (msix_enabled(d) && s->auto_int_masking) {
>          goto do_automask;
>      }
>  
> @@ -1427,7 +1425,7 @@ static void vmxnet3_update_features(VMXNET3State *s)
>  
>  static bool vmxnet3_verify_intx(VMXNET3State *s, int intx)
>  {
> -    return s->msix_used || msi_enabled(PCI_DEVICE(s))
> +    return msix_enabled(PCI_DEVICE(s)) || msi_enabled(PCI_DEVICE(s))
>          || intx == pci_get_byte(s->parent_obj.config + PCI_INTERRUPT_PIN) - 1;
>  }
>  
> @@ -1444,18 +1442,18 @@ static void vmxnet3_validate_interrupts(VMXNET3State *s)
>      int i;
>  
>      VMW_CFPRN("Verifying event interrupt index (%d)", s->event_int_idx);
> -    vmxnet3_validate_interrupt_idx(s->msix_used, s->event_int_idx);
> +    vmxnet3_validate_interrupt_idx(msix_enabled(PCI_DEVICE(s)), s->event_int_idx);
>  
>      for (i = 0; i < s->txq_num; i++) {
>          int idx = s->txq_descr[i].intr_idx;
>          VMW_CFPRN("Verifying TX queue %d interrupt index (%d)", i, idx);
> -        vmxnet3_validate_interrupt_idx(s->msix_used, idx);
> +        vmxnet3_validate_interrupt_idx(msix_enabled(PCI_DEVICE(s)), idx);
>      }
>  
>      for (i = 0; i < s->rxq_num; i++) {
>          int idx = s->rxq_descr[i].intr_idx;
>          VMW_CFPRN("Verifying RX queue %d interrupt index (%d)", i, idx);
> -        vmxnet3_validate_interrupt_idx(s->msix_used, idx);
> +        vmxnet3_validate_interrupt_idx(msix_enabled(PCI_DEVICE(s)), idx);
>      }
>  }
>  
> @@ -2184,6 +2182,7 @@ vmxnet3_use_msix_vectors(VMXNET3State *s, int num_vectors)
>  static bool
>  vmxnet3_init_msix(VMXNET3State *s)
>  {
> +    bool msix;
>      PCIDevice *d = PCI_DEVICE(s);
>      int res = msix_init(d, VMXNET3_MAX_INTRS,
>                          &s->msix_bar,
> @@ -2198,17 +2197,18 @@ vmxnet3_init_msix(VMXNET3State *s)
>  
>      if (0 > res) {
>          VMW_WRPRN("Failed to initialize MSI-X, board's MSI support is broken");
> -        s->msix_used = false;
> +        msix = false;
>      } else {
>          if (!vmxnet3_use_msix_vectors(s, VMXNET3_MAX_INTRS)) {
>              VMW_WRPRN("Failed to use MSI-X vectors, error %d", res);
>              msix_uninit(d, &s->msix_bar, &s->msix_bar);
> -            s->msix_used = false;
> +            msix = false;
>          } else {
> -            s->msix_used = true;
> +            msix = true;
>          }
>      }
> -    return s->msix_used;
> +
> +    return msix;
>  }
>  
>  static void
> @@ -2216,7 +2216,7 @@ vmxnet3_cleanup_msix(VMXNET3State *s)
>  {
>      PCIDevice *d = PCI_DEVICE(s);
>  
> -    if (s->msix_used) {
> +    if (msix_enabled(d)) {
>          vmxnet3_unuse_msix_vectors(s, VMXNET3_MAX_INTRS);
>          msix_uninit(d, &s->msix_bar, &s->msix_bar);
>      }
> @@ -2551,21 +2551,11 @@ static void vmxnet3_put_rxq_descr(QEMUFile *f, void *pv, size_t size)
>  static int vmxnet3_post_load(void *opaque, int version_id)
>  {
>      VMXNET3State *s = opaque;
> -    PCIDevice *d = PCI_DEVICE(s);
>  
>      net_tx_pkt_init(&s->tx_pkt, PCI_DEVICE(s),
>                      s->max_tx_frags, s->peer_has_vhdr);
>      net_rx_pkt_init(&s->rx_pkt, s->peer_has_vhdr);
>  
> -    if (s->msix_used) {
> -        if  (!vmxnet3_use_msix_vectors(s, VMXNET3_MAX_INTRS)) {
> -            VMW_WRPRN("Failed to re-use MSI-X vectors");
> -            msix_uninit(d, &s->msix_bar, &s->msix_bar);
> -            s->msix_used = false;
> -            return -1;
> -        }
> -    }
> -
>      vmxnet3_validate_queues(s);
>      vmxnet3_validate_interrupts(s);

This hunk isn't obvious.  Can you explain the change?

  reply	other threads:[~2016-09-29 14:42 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-14  7:50 [Qemu-devel] [PATCH v3 0/8] Convert msix_init() to error Cao jin
2016-09-14  7:50 ` [Qemu-devel] [PATCH v3 1/8] msix: Follow CODING_STYLE Cao jin
2016-09-14  7:50 ` [Qemu-devel] [PATCH v3 2/8] hcd-xhci: check & correct param before using it Cao jin
2016-09-29 13:47   ` Markus Armbruster
2016-09-29 15:21     ` Gerd Hoffmann
2016-09-14  7:50 ` [Qemu-devel] [PATCH v3 3/8] pci: Convert msix_init() to Error and fix callers to check it Cao jin
2016-09-29 14:17   ` Markus Armbruster
2016-09-30  5:44     ` Cao jin
2016-09-30  7:01       ` Markus Armbruster
2016-09-30  7:07         ` Cao jin
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 4/8] megasas: change behaviour of msix switch Cao jin
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 5/8] hcd-xhci: " Cao jin
2016-09-29 14:32   ` Markus Armbruster
2016-09-29 15:22     ` Gerd Hoffmann
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 6/8] megasas: remove unnecessary megasas_use_msix() Cao jin
2016-09-29 14:35   ` Markus Armbruster
2016-09-30  6:09     ` Cao jin
2016-09-30  7:01       ` Markus Armbruster
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 7/8] megasas: undo the overwrites of msi user configuration Cao jin
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 8/8] vmxnet3: remove unnecessary internal msix state flag Cao jin
2016-09-29 14:42   ` Markus Armbruster [this message]
2016-09-30  6:58     ` Cao jin
2016-09-30 13:08       ` Markus Armbruster
2016-10-06  9:39         ` Dmitry Fleytman
2016-10-06 15:43           ` Dr. David Alan Gilbert
2016-10-06 19:33             ` Dmitry Fleytman
2016-10-11  3:35           ` Cao jin
2016-10-11  4:18             ` Dmitry Fleytman

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=87k2du7oo7.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=caoj.fnst@cn.fujitsu.com \
    --cc=dmitry@daynix.com \
    --cc=jasowang@redhat.com \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.