From: Thomas Gleixner <tglx@linutronix.de>
To: Jason Andryuk <jandryuk@gmail.com>, josef@oderland.se
Cc: boris.ostrovsky@oracle.com, helgaas@kernel.org,
jandryuk@gmail.com, jgross@suse.com, linux-pci@vger.kernel.org,
maz@kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] PCI/MSI: Fix masking MSI/MSI-X on Xen PV
Date: Wed, 27 Oct 2021 10:45:31 +0200 [thread overview]
Message-ID: <87fssmg8k4.ffs@tglx> (raw)
In-Reply-To: <20211025012503.33172-1-jandryuk@gmail.com>
On Sun, Oct 24 2021 at 21:25, Jason Andryuk wrote:
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 4b4792940e86..478536bafc39 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -148,6 +148,9 @@ static noinline void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 s
> raw_spinlock_t *lock = &desc->dev->msi_lock;
> unsigned long flags;
>
> + if (pci_msi_ignore_mask)
> + return;
> +
> raw_spin_lock_irqsave(lock, flags);
> desc->msi_mask &= ~clear;
> desc->msi_mask |= set;
> @@ -181,6 +184,9 @@ static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
> {
> void __iomem *desc_addr = pci_msix_desc_addr(desc);
>
> + if (pci_msi_ignore_mask)
> + return;
> +
> writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
> }
>
> @@ -200,7 +206,7 @@ static inline void pci_msix_unmask(struct msi_desc *desc)
>
> static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
> {
> - if (pci_msi_ignore_mask || desc->msi_attrib.is_virtual)
> + if (desc->msi_attrib.is_virtual)
> return;
>
> if (desc->msi_attrib.is_msix)
> @@ -211,7 +217,7 @@ static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
>
> static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
> {
> - if (pci_msi_ignore_mask || desc->msi_attrib.is_virtual)
> + if (desc->msi_attrib.is_virtual)
> return;
>
> if (desc->msi_attrib.is_msix)
No, really. This is horrible and incomplete. The right thing to do is to
move the check back into the low level accessors and remove it from the
call sites simply because the low level accessors can be reached not
only from the mask/unmask functions. But the above also fails to respect
msi_attrib.maskbit... I'll send out a proper fix in a few.
Thanks,
tglx
next prev parent reply other threads:[~2021-10-27 8:45 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-18 6:22 [PATCH] PCI/MSI: Re-add checks for skip masking MSI-X on Xen PV Josef Johansson
2021-10-19 19:57 ` Bjorn Helgaas
2021-10-19 20:15 ` Josef Johansson
2021-10-19 20:29 ` Bjorn Helgaas
2021-10-19 21:48 ` [PATCH v2] " Josef Johansson
2021-10-20 12:51 ` Marc Zyngier
2021-10-20 14:03 ` Jason Andryuk
2021-10-21 8:25 ` Josef Johansson
2021-10-24 18:55 ` Josef Johansson
2021-10-25 1:25 ` [PATCH] PCI/MSI: Fix masking MSI/MSI-X " Jason Andryuk
2021-10-25 7:44 ` David Woodhouse
2021-10-25 11:43 ` Roger Pau Monné
2021-10-25 11:53 ` David Woodhouse
2021-10-25 12:58 ` Roger Pau Monné
2021-10-25 13:02 ` David Woodhouse
2021-10-25 14:12 ` Roger Pau Monné
2021-10-25 12:31 ` Jason Andryuk
2021-10-25 12:27 ` Jason Andryuk
2021-10-25 16:46 ` Josef Johansson
2021-10-26 21:17 ` Josef Johansson
2021-10-27 8:45 ` Thomas Gleixner [this message]
2021-10-27 9:50 ` [PATCH] PCI/MSI: Move non-mask check back into low level accessors Thomas Gleixner
2021-10-27 9:54 ` Josef Johansson
2021-10-27 12:01 ` Josef Johansson
2021-10-27 15:29 ` Josef Johansson
2021-11-03 23:26 ` Thomas Gleixner
2021-11-03 23:27 ` [PATCH v2] " Thomas Gleixner
2021-11-09 14:53 ` Thomas Gleixner
2021-11-10 13:31 ` Josef Johansson
2021-11-10 16:05 ` Josef Johansson
2021-11-03 23:45 ` [PATCH] " Thomas Gleixner
2021-11-04 9:00 ` Josef Johansson
2021-11-04 17:12 ` Peter Zijlstra
2021-11-04 17:31 ` Vincent Guittot
2021-11-10 20:30 ` Josef Johansson
2021-11-10 23:13 ` Josef Johansson
2021-10-27 9:57 ` David Woodhouse
2021-10-25 1:25 ` [PATCH v2] PCI/MSI: Re-add checks for skip masking MSI-X on Xen PV Jason Andryuk
2021-10-25 19:21 ` Josef Johansson
2021-10-27 6:24 ` David Woodhouse
2021-10-27 8:13 ` Josef Johansson
2021-10-27 8:26 ` David Woodhouse
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=87fssmg8k4.ffs@tglx \
--to=tglx@linutronix.de \
--cc=boris.ostrovsky@oracle.com \
--cc=helgaas@kernel.org \
--cc=jandryuk@gmail.com \
--cc=jgross@suse.com \
--cc=josef@oderland.se \
--cc=linux-pci@vger.kernel.org \
--cc=maz@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox