LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [GIT PULL] IRQ fix
Date: Fri, 12 Aug 2016 21:22:05 +0200	[thread overview]
Message-ID: <20160812192205.GA24997@gmail.com> (raw)

Linus,

Please pull the latest irq-urgent-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus

   # HEAD: f3b0946d629c8bfbd3e5f038e30cb9c711a35f10 genirq/msi: Make sure PCI MSIs are activated early

A fix for an MSI regression.

 Thanks,

	Ingo

------------------>
Marc Zyngier (1):
      genirq/msi: Make sure PCI MSIs are activated early


 drivers/pci/msi.c   |  2 ++
 include/linux/msi.h |  2 ++
 kernel/irq/msi.c    | 11 +++++++++++
 3 files changed, 15 insertions(+)

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index a02981efdad5..eafa6138a6b8 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1411,6 +1411,8 @@ struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
 	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
 		pci_msi_domain_update_chip_ops(info);
 
+	info->flags |= MSI_FLAG_ACTIVATE_EARLY;
+
 	domain = msi_create_irq_domain(fwnode, info, parent);
 	if (!domain)
 		return NULL;
diff --git a/include/linux/msi.h b/include/linux/msi.h
index 4f0bfe5912b2..e8c81fbd5f9c 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -270,6 +270,8 @@ enum {
 	MSI_FLAG_MULTI_PCI_MSI		= (1 << 2),
 	/* Support PCI MSIX interrupts */
 	MSI_FLAG_PCI_MSIX		= (1 << 3),
+	/* Needs early activate, required for PCI */
+	MSI_FLAG_ACTIVATE_EARLY		= (1 << 4),
 };
 
 int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index 54999350162c..19e9dfbe97fa 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -359,6 +359,17 @@ int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 		else
 			dev_dbg(dev, "irq [%d-%d] for MSI\n",
 				virq, virq + desc->nvec_used - 1);
+		/*
+		 * This flag is set by the PCI layer as we need to activate
+		 * the MSI entries before the PCI layer enables MSI in the
+		 * card. Otherwise the card latches a random msi message.
+		 */
+		if (info->flags & MSI_FLAG_ACTIVATE_EARLY) {
+			struct irq_data *irq_data;
+
+			irq_data = irq_domain_get_irq_data(domain, desc->irq);
+			irq_domain_activate_irq(irq_data);
+		}
 	}
 
 	return 0;

             reply	other threads:[~2016-08-12 19:22 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-12 19:22 Ingo Molnar [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-05-15  7:44 Ingo Molnar
2021-05-15 17:55 ` pr-tracker-bot
2020-01-18 17:19 Ingo Molnar
2020-01-18 21:05 ` pr-tracker-bot
2019-09-12  8:35 Ingo Molnar
2019-09-12 10:15 ` pr-tracker-bot
2017-11-05 14:37 Ingo Molnar
2017-03-07 20:24 Ingo Molnar
2016-12-23 22:46 Ingo Molnar
2016-11-14  7:59 Ingo Molnar
2016-10-28  8:33 [GIT PULL] irq fix Ingo Molnar
2016-01-08 12:42 Ingo Molnar
2015-05-15  7:13 Ingo Molnar
2014-04-16 12:59 Ingo Molnar
2013-10-04  7:51 Ingo Molnar
2012-08-03 16:37 Ingo Molnar
2011-12-05 19:03 Ingo Molnar
2011-06-13  9:51 Ingo Molnar
2011-05-03 11:48 Ingo Molnar
2011-04-22 13:33 Ingo Molnar
2011-04-07 17:46 Ingo Molnar
2011-02-03 17:14 Ingo Molnar
2010-12-08  8:05 Ingo Molnar
2009-11-10 17:50 Ingo Molnar
2009-08-10 18:15 Ingo Molnar

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=20160812192205.GA24997@gmail.com \
    --to=mingo@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --subject='Re: [GIT PULL] IRQ fix' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).