All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"julien@xen.org" <julien@xen.org>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Artem Mygaiev <Artem_Mygaiev@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Michal Orzel <michal.orzel@arm.com>
Subject: Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for guests
Date: Wed, 3 Nov 2021 12:01:03 +0100	[thread overview]
Message-ID: <YYJr75RbSOuvbzGF@Air-de-Roger> (raw)
In-Reply-To: <d3908703-3501-892c-55fc-5a171318eeea@epam.com>

On Wed, Nov 03, 2021 at 10:36:36AM +0000, Oleksandr Andrushchenko wrote:
> 
> 
> On 03.11.21 12:34, Jan Beulich wrote:
> > On 03.11.2021 11:24, Oleksandr Andrushchenko wrote:
> >> On 03.11.21 11:49, Jan Beulich wrote:
> >>> Aiui you want to prevent the guest from clearing the bit if either
> >>> MSI or MSI-X are in use. Symmetrically, when the guest enables MSI
> >>> or MSI-X, you will want to force the bit set (which may well be in
> >>> a separate, future patch).
> >> static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
> >> {
> >>       /* TODO: Add proper emulation for all bits of the command register. */
> >>
> >>       if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
> >>       {
> >>           /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
> >> #ifdef CONFIG_HAS_PCI_MSI
> >>           if ( pdev->vpci->msi->enabled )
> >>               cmd |= PCI_COMMAND_INTX_DISABLE;
> >> #endif
> >>       }
> >>
> >>       return cmd;
> >> }
> >>
> >> Is this what you mean?
> > Something along these lines, yes. I'd omit the outer if() for clarity /
> > brevity.
> Sure, thank you!
> @Roger are you ok with this approach?

Sure, I would even do:

#ifdef CONFIG_HAS_PCI_MSI
if ( !(cmd & PCI_COMMAND_INTX_DISABLE) && pdev->vpci->msi->enabled )
{
    /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X enabled. */
    cmd |= PCI_COMMAND_INTX_DISABLE;
}
#endif

There's no need for the outer check if there's no support for MSI.

Thanks, Roger.


  reply	other threads:[~2021-11-03 11:01 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-30  7:52 [PATCH v3 00/11] PCI devices passthrough on Arm, part 3 Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 01/11] vpci: Make vpci registers removal a dedicated function Oleksandr Andrushchenko
2021-10-13 11:11   ` Roger Pau Monné
2021-10-27  9:12     ` Oleksandr Andrushchenko
2021-10-27  9:24       ` Roger Pau Monné
2021-10-27  9:41         ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 02/11] vpci: Add hooks for PCI device assign/de-assign Oleksandr Andrushchenko
2021-09-30  8:21   ` Jan Beulich
2021-09-30  8:45     ` Oleksandr Andrushchenko
2021-09-30  9:06       ` Jan Beulich
2021-09-30  9:21         ` Oleksandr Andrushchenko
2021-09-30 10:14           ` Jan Beulich
2021-09-30 10:30             ` Oleksandr Andrushchenko
2021-10-13 11:29   ` Roger Pau Monné
2021-10-13 12:47     ` Jan Beulich
2021-10-27  9:53     ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 03/11] vpci/header: Move register assignments from init_bars Oleksandr Andrushchenko
2021-10-13 13:51   ` Roger Pau Monné
2021-10-15  6:04     ` Jan Beulich
2021-10-25 14:28       ` Roger Pau Monné
2021-10-27 10:17     ` Oleksandr Andrushchenko
2021-10-27 11:59       ` Oleksandr Andrushchenko
2021-10-27 13:23         ` Roger Pau Monné
2021-10-27 14:06           ` Oleksandr Andrushchenko
2021-10-27 15:34             ` Roger Pau Monné
2021-09-30  7:52 ` [PATCH v3 04/11] vpci/header: Add and remove register handlers dynamically Oleksandr Andrushchenko
2021-10-01 13:26   ` Jan Beulich
2021-10-04  5:58     ` Oleksandr Andrushchenko
2021-10-07  7:22       ` Jan Beulich
2021-10-13 15:38         ` Roger Pau Monné
2021-10-15  6:09           ` Jan Beulich
2021-10-25 15:48   ` Roger Pau Monné
2021-11-01  9:18     ` Oleksandr Andrushchenko
2021-11-02 10:03       ` Roger Pau Monné
2021-11-02 10:29         ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 05/11] vpci/header: Implement guest BAR register handlers Oleksandr Andrushchenko
2021-10-01 13:31   ` Jan Beulich
2021-10-26  7:50   ` Roger Pau Monné
2021-10-26  8:09     ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 06/11] vpci/header: Handle p2m range sets per BAR Oleksandr Andrushchenko
2021-10-25 11:51   ` Oleksandr Andrushchenko
2021-10-26  9:40     ` Roger Pau Monné
2021-11-02 11:13       ` Jan Beulich
2021-10-26  9:08   ` Roger Pau Monné
2021-11-02 10:34     ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 07/11] vpci/header: program p2m with guest BAR view Oleksandr Andrushchenko
2021-10-01 13:38   ` Jan Beulich
2021-10-04  6:26     ` Oleksandr Andrushchenko
2021-10-26 10:35   ` Roger Pau Monné
2021-11-02 10:43     ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for guests Oleksandr Andrushchenko
2021-10-26 10:52   ` Roger Pau Monné
2021-11-02 10:48     ` Oleksandr Andrushchenko
2021-11-02 11:19     ` Jan Beulich
2021-11-02 11:50       ` Roger Pau Monné
2021-11-02 13:54         ` Jan Beulich
2021-11-02 14:10           ` Oleksandr Andrushchenko
2021-11-03  8:53             ` Oleksandr Andrushchenko
2021-11-03  9:11               ` Jan Beulich
2021-11-03  9:18                 ` Oleksandr Andrushchenko
2021-11-03  9:24                   ` Jan Beulich
2021-11-03  9:30                     ` Oleksandr Andrushchenko
2021-11-03  9:49                       ` Jan Beulich
2021-11-03 10:24                         ` Oleksandr Andrushchenko
2021-11-03 10:34                           ` Jan Beulich
2021-11-03 10:36                             ` Oleksandr Andrushchenko
2021-11-03 11:01                               ` Roger Pau Monné [this message]
2021-11-03 11:02                                 ` Oleksandr Andrushchenko
2021-11-03 11:26                                   ` Roger Pau Monné
2021-11-03 11:34                                     ` Oleksandr Andrushchenko
2021-11-03  9:39                   ` Roger Pau Monné
2021-11-03  9:50                     ` Oleksandr Andrushchenko
2021-11-02 14:17         ` Julien Grall
2021-09-30  7:52 ` [PATCH v3 09/11] vpci/header: Reset the command register when adding devices Oleksandr Andrushchenko
2021-10-26 11:00   ` Roger Pau Monné
2021-11-02 11:11     ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus topology Oleksandr Andrushchenko
2021-09-30  8:51   ` Jan Beulich
2021-09-30  9:34     ` Oleksandr Andrushchenko
2021-09-30 10:23       ` Jan Beulich
2021-09-30 10:26         ` Oleksandr Andrushchenko
2021-10-26 11:33   ` Roger Pau Monné
2021-11-03  6:34     ` Oleksandr Andrushchenko
2021-11-03  8:41       ` Jan Beulich
2021-11-03  8:57         ` Oleksandr Andrushchenko
2021-11-03  8:52       ` Roger Pau Monné
2021-11-03  8:59         ` Oleksandr Andrushchenko
2021-09-30  7:52 ` [PATCH v3 11/11] xen/arm: Translate virtual PCI bus topology for guests Oleksandr Andrushchenko
2021-09-30  8:53   ` Jan Beulich
2021-09-30  9:35     ` Oleksandr Andrushchenko
2021-09-30 10:25       ` Jan Beulich
2021-09-30 16:57     ` Oleksandr Andrushchenko
2021-10-01  7:42       ` Jan Beulich
2021-10-01  7:57         ` Oleksandr Andrushchenko
2021-10-01  8:12           ` Jan Beulich
2021-10-18 18:32   ` Julien Grall
2021-10-26 13:30   ` Roger Pau Monné
2021-10-26 13:57     ` Oleksandr Andrushchenko

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=YYJr75RbSOuvbzGF@Air-de-Roger \
    --to=roger.pau@citrix.com \
    --cc=Artem_Mygaiev@epam.com \
    --cc=Oleksandr_Andrushchenko@epam.com \
    --cc=Oleksandr_Tyshchenko@epam.com \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=bertrand.marquis@arm.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=michal.orzel@arm.com \
    --cc=rahul.singh@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.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.