public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC Part4 v1 16/17] x86, htirq: Kill struct ht_irq_msg by reusing struct msi_msg
       [not found] <1415545839-28263-1-git-send-email-jiang.liu@linux.intel.com>
@ 2014-11-09 15:10 ` Jiang Liu
  0 siblings, 0 replies; only message in thread
From: Jiang Liu @ 2014-11-09 15:10 UTC (permalink / raw)
  To: Bjorn Helgaas, Benjamin Herrenschmidt, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, Rafael J. Wysocki, Randy Dunlap,
	Yinghai Lu, Borislav Petkov, Grant Likely, Marc Zyngier,
	Yingjoe Chen, x86, Mike Marciniszyn, Roland Dreier, Sean Hefty,
	Hal Rosenstock, Matthias Brugger, Jiang Liu
  Cc: Konrad Rzeszutek Wilk, Andrew Morton, Tony Luck, Joerg Roedel,
	Greg Kroah-Hartman, linux-kernel, linux-pci, linux-acpi,
	linux-arm-kernel, linux-rdma

Reuse struct msi_msg for HT interrupts, so we could use common MSI code
to manage HT interrupts later.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
---
 arch/x86/kernel/apic/htirq.c                |    6 +++---
 drivers/infiniband/hw/ipath/ipath_iba6110.c |    2 +-
 drivers/pci/htirq.c                         |    8 ++++----
 include/linux/htirq.h                       |   14 +++++---------
 4 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/arch/x86/kernel/apic/htirq.c b/arch/x86/kernel/apic/htirq.c
index 1448df3f9e9f..b6503510f1af 100644
--- a/arch/x86/kernel/apic/htirq.c
+++ b/arch/x86/kernel/apic/htirq.c
@@ -34,7 +34,7 @@ ht_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force)
 
 	ret = parent->chip->irq_set_affinity(parent, mask, force);
 	if (ret >= 0) {
-		struct ht_irq_msg msg;
+		struct msi_msg msg;
 		struct irq_cfg *cfg = irqd_cfg(data);
 
 		fetch_ht_irq_msg(data->irq, &msg);
@@ -115,7 +115,7 @@ static void htirq_domain_free(struct irq_domain *domain, unsigned int virq,
 static void htirq_domain_activate(struct irq_domain *domain,
 				  struct irq_data *irq_data)
 {
-	struct ht_irq_msg msg;
+	struct msi_msg msg;
 	struct irq_cfg *cfg = irqd_cfg(irq_data);
 
 	msg.address_hi = HT_IRQ_HIGH_DEST_ID(cfg->dest_apicid);
@@ -137,7 +137,7 @@ static void htirq_domain_activate(struct irq_domain *domain,
 static void htirq_domain_deactivate(struct irq_domain *domain,
 				    struct irq_data *irq_data)
 {
-	struct ht_irq_msg msg;
+	struct msi_msg msg;
 
 	memset(&msg, 0, sizeof(msg));
 	write_ht_irq_msg(irq_data->irq, &msg);
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6110.c b/drivers/infiniband/hw/ipath/ipath_iba6110.c
index 7cc305488a3d..b49ce8942b57 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba6110.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6110.c
@@ -986,7 +986,7 @@ static int ipath_ht_intconfig(struct ipath_devdata *dd)
 }
 
 static void ipath_ht_irq_update(struct pci_dev *dev, int irq,
-				struct ht_irq_msg *msg)
+				struct msi_msg *msg)
 {
 	struct ipath_devdata *dd = pci_get_drvdata(dev);
 	u64 prev_intconfig = dd->ipath_intconfig;
diff --git a/drivers/pci/htirq.c b/drivers/pci/htirq.c
index 7eb4109a3df4..3bbbc5cdcb9b 100644
--- a/drivers/pci/htirq.c
+++ b/drivers/pci/htirq.c
@@ -23,7 +23,7 @@
  */
 static DEFINE_SPINLOCK(ht_irq_lock);
 
-void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg)
+void write_ht_irq_msg(unsigned int irq, struct msi_msg *msg)
 {
 	struct ht_irq_cfg *cfg = irq_get_handler_data(irq);
 	unsigned long flags;
@@ -43,7 +43,7 @@ void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg)
 	cfg->msg = *msg;
 }
 
-void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg)
+void fetch_ht_irq_msg(unsigned int irq, struct msi_msg *msg)
 {
 	struct ht_irq_cfg *cfg = irq_get_handler_data(irq);
 
@@ -53,7 +53,7 @@ void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg)
 void mask_ht_irq(struct irq_data *data)
 {
 	struct ht_irq_cfg *cfg = irq_data_get_irq_handler_data(data);
-	struct ht_irq_msg msg = cfg->msg;
+	struct msi_msg msg = cfg->msg;
 
 	msg.address_lo |= 1;
 	write_ht_irq_msg(data->irq, &msg);
@@ -62,7 +62,7 @@ void mask_ht_irq(struct irq_data *data)
 void unmask_ht_irq(struct irq_data *data)
 {
 	struct ht_irq_cfg *cfg = irq_data_get_irq_handler_data(data);
-	struct ht_irq_msg msg = cfg->msg;
+	struct msi_msg msg = cfg->msg;
 
 	msg.address_lo &= ~1;
 	write_ht_irq_msg(data->irq, &msg);
diff --git a/include/linux/htirq.h b/include/linux/htirq.h
index d4a527e58434..98e432f7f9b1 100644
--- a/include/linux/htirq.h
+++ b/include/linux/htirq.h
@@ -1,16 +1,12 @@
 #ifndef LINUX_HTIRQ_H
 #define LINUX_HTIRQ_H
+#include <linux/msi.h>
 
 struct pci_dev;
 struct irq_data;
 
-struct ht_irq_msg {
-	u32	address_lo;	/* low 32 bits of the ht irq message */
-	u32	address_hi;	/* high 32 bits of the it irq message */
-};
-
 typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq,
-			       struct ht_irq_msg *msg);
+			       struct msi_msg *msg);
 
 struct ht_irq_cfg {
 	struct pci_dev *dev;
@@ -18,12 +14,12 @@ struct ht_irq_cfg {
 	ht_irq_update_t *update;
 	unsigned pos;
 	unsigned idx;
-	struct ht_irq_msg msg;
+	struct msi_msg msg;
 };
 
 /* Helper functions.. */
-void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
-void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
+void fetch_ht_irq_msg(unsigned int irq, struct msi_msg *msg);
+void write_ht_irq_msg(unsigned int irq, struct msi_msg *msg);
 void mask_ht_irq(struct irq_data *data);
 void unmask_ht_irq(struct irq_data *data);
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2014-11-09 15:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1415545839-28263-1-git-send-email-jiang.liu@linux.intel.com>
2014-11-09 15:10 ` [RFC Part4 v1 16/17] x86, htirq: Kill struct ht_irq_msg by reusing struct msi_msg Jiang Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox