linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiang Liu <jiang.liu@linux.intel.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
	x86@kernel.org, Rusty Russell <rusty@rustcorp.com.au>,
	Andy Lutomirski <luto@kernel.org>,
	Brian Gerst <brgerst@gmail.com>, Christoph Lameter <cl@linux.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Tony Luck <tony.luck@intel.com>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-acpi@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
	lguest@lists.ozlabs.org
Subject: [RFT v2 41/48] genirq, x86: Kill the first parameter 'irq' of irq_flow_handler_t
Date: Thu,  4 Jun 2015 12:13:51 +0800	[thread overview]
Message-ID: <1433391238-19471-42-git-send-email-jiang.liu@linux.intel.com> (raw)
In-Reply-To: <1433391238-19471-1-git-send-email-jiang.liu@linux.intel.com>

Now most IRQ flow handlers make no use of the first parameter 'irq'.
And for those who do make use of 'irq', we could easily get the irq
number through irq_desc->irq_data->irq. So kill the first parameter
'irq' of irq_flow_handler_t.

To ease review, I have split the changes into several parts, though
they should be merge as one to support bisecting.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
---
 arch/x86/kernel/irq_32.c |   13 ++++++-------
 arch/x86/kernel/irq_64.c |    2 +-
 arch/x86/lguest/boot.c   |    2 +-
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index cd74f5978ab9..9bf5cccefebd 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -69,10 +69,10 @@ static inline void *current_stack(void)
 }
 
 static inline int
-execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
+execute_on_irq_stack(int overflow, struct irq_desc *desc)
 {
 	struct irq_stack *curstk, *irqstk;
-	u32 *isp, *prev_esp, arg1, arg2;
+	u32 *isp, *prev_esp, arg1;
 
 	curstk = (struct irq_stack *) current_stack();
 	irqstk = __this_cpu_read(hardirq_stack);
@@ -98,9 +98,8 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
 	asm volatile("xchgl	%%ebx,%%esp	\n"
 		     "call	*%%edi		\n"
 		     "movl	%%ebx,%%esp	\n"
-		     : "=a" (arg1), "=d" (arg2), "=b" (isp)
-		     :  "0" (irq),   "1" (desc),  "2" (isp),
-			"D" (desc->handle_irq)
+		     : "=a" (arg1), "=b" (isp)
+		     :  "0" (desc), "1" (isp), "D" (desc->handle_irq)
 		     : "memory", "cc", "ecx");
 	return 1;
 }
@@ -159,10 +158,10 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
 	if (unlikely(!desc))
 		return false;
 
-	if (user_mode(regs) || !execute_on_irq_stack(overflow, desc, irq)) {
+	if (user_mode(regs) || !execute_on_irq_stack(overflow, desc)) {
 		if (unlikely(overflow))
 			print_stack_overflow();
-		desc->handle_irq(irq, desc);
+		desc->handle_irq(desc);
 	}
 
 	return true;
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index bc4604e500a3..eca6d5e3ad25 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -78,6 +78,6 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
 	if (unlikely(!desc))
 		return false;
 
-	generic_handle_irq_desc(irq, desc);
+	generic_handle_irq_desc(desc);
 	return true;
 }
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index cab9aaa7802c..24efba1c1f3d 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1021,7 +1021,7 @@ static struct clock_event_device lguest_clockevent = {
  * This is the Guest timer interrupt handler (hardware interrupt 0).  We just
  * call the clockevent infrastructure and it does whatever needs doing.
  */
-static void lguest_time_irq(unsigned int irq, struct irq_desc *desc)
+static void lguest_time_irq(struct irq_desc *desc)
 {
 	unsigned long flags;
 
-- 
1.7.10.4


  parent reply	other threads:[~2015-06-04  4:13 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-04  4:13 [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Jiang Liu
2015-06-04  4:13 ` [RFT v2 01/48] genirq: Clean up outdated comments related to include/linux/irqdesc.h Jiang Liu
2015-06-04  4:13 ` [RFT v2 02/48] genirq: Kill never used irq_node() Jiang Liu
2015-06-04  4:13 ` [RFT v2 03/48] MIPS, irq: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
2015-06-04 12:15   ` Sergey Ryazanov
2015-06-04  4:13 ` [RFT v2 04/48] powerpc, " Jiang Liu
2015-06-04  4:13 ` [RFT v2 05/48] gpio: " Jiang Liu
2015-06-04  6:20   ` Javier Martinez Canillas
2015-06-04  4:13 ` [RFT v2 06/48] pinctrl: " Jiang Liu
2015-06-05  3:06   ` Tomasz Figa
2015-06-10  8:39   ` Heiko Stübner
2015-06-10 10:29   ` Matthias Brugger
2015-06-04  4:13 ` [RFT v2 07/48] avr32, irq: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 08/48] mfd: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 09/48] ARM, irq: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 10/48] irqchip: " Jiang Liu
2015-06-04  4:50   ` Krzysztof Kozlowski
2015-06-04  4:13 ` [RFT v2 11/48] ipu: " Jiang Liu
2015-06-08 11:16   ` Vinod Koul
2015-06-08 11:37     ` Jiang Liu
2015-06-04  4:13 ` [RFT v2 12/48] sh: intc: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 13/48] keystone, irq: Use irq_data_get_xxx() to avoid redundant lookup of irq_data Jiang Liu
2015-06-04  4:13 ` [RFT v2 14/48] spmi: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
2015-06-04  4:13 ` [RFT v2 15/48] genirq: Kill the parameter 'irq' of kstat_incr_irqs_this_cpu() Jiang Liu
2015-06-04  4:13 ` [RFT v2 16/48] genirq: Introduce helper irq_desc_get_irq() Jiang Liu
2015-06-04  4:13 ` [RFT v2 17/48] genirq: Kill the parameter 'irq' of check_irq_resend() Jiang Liu
2015-06-04  4:13 ` [RFT v2 18/48] genirq: Kill the parameter 'irq' of note_interrupt() Jiang Liu
2015-06-04  4:13 ` [RFT v2 19/48] genirq: Change prototypes of register_irq_proc() and friends Jiang Liu
2015-06-04  4:13 ` [RFT v2 20/48] genirq: Kill the parameter 'irq' of setup_affinity() Jiang Liu
2015-06-04  4:13 ` [RFT v2 21/48] ARM, irq: Prepare for killing the first parameter 'irq' of irq_flow_handler_t Jiang Liu
2015-06-04  4:13 ` [RFT v2 22/48] blackfin, " Jiang Liu
2015-06-04  4:13 ` [RFT v2 23/48] c6x, " Jiang Liu
2015-06-05 14:14   ` Mark Salter
2015-06-04  4:13 ` [RFT v2 24/48] m68k, " Jiang Liu
2015-06-04  4:13 ` [RFT v2 25/48] mips, " Jiang Liu
2015-06-05  8:34   ` Ralf Baechle
2015-06-04  4:13 ` [RFT v2 26/48] powerpc, " Jiang Liu
2015-06-04  4:13 ` [RFT v2 27/48] sh, " Jiang Liu
2015-06-04  4:13 ` [RFT v2 28/48] unicore32, " Jiang Liu
2015-06-04  4:13 ` [RFT v2 29/48] ipu: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 30/48] gpio: " Jiang Liu
2015-06-04 11:27   ` Linus Walleij
2015-06-04  4:13 ` [RFT v2 31/48] irqchip: " Jiang Liu
2015-06-05  8:36   ` Ralf Baechle
2015-06-04  4:13 ` [RFT v2 32/48] mfd: " Jiang Liu
2015-06-04  7:14   ` Lee Jones
2015-06-04  4:13 ` [RFT v2 33/48] PCI/keystone: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 34/48] pinctrl: " Jiang Liu
2015-06-10  8:39   ` Heiko Stübner
2015-06-10 13:14   ` Linus Walleij
2015-06-04  4:13 ` [RFT v2 35/48] genirq: Kill " Jiang Liu
2015-06-04  4:13 ` [RFT v2 36/48] genirq, arm: " Jiang Liu
2015-06-04  4:52   ` Krzysztof Kozlowski
2015-06-04  4:13 ` [RFT v2 37/48] genirq, blackfin: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 38/48] genirq, powerpc: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 39/48] genirq, mips: " Jiang Liu
2015-06-04 12:21   ` Sergey Ryazanov
2015-06-04  4:13 ` [RFT v2 40/48] genirq, m68k: " Jiang Liu
2015-06-04  4:13 ` Jiang Liu [this message]
2015-06-04  4:13 ` [RFT v2 42/48] genirq, sh: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 43/48] genirq, arch: " Jiang Liu
2015-06-05 14:16   ` Mark Salter
2015-06-04  4:13 ` [RFT v2 44/48] genirq, pinctrl: " Jiang Liu
2015-06-10  8:40   ` Heiko Stübner
2015-06-04  4:13 ` [RFT v2 45/48] genirq, gpio: " Jiang Liu
2015-06-04  6:20   ` Javier Martinez Canillas
2015-06-04 11:28   ` Linus Walleij
2015-06-04  4:13 ` [RFT v2 46/48] genirq, irqchip: " Jiang Liu
2015-06-04  4:52   ` Krzysztof Kozlowski
2015-06-04  4:13 ` [RFT v2 47/48] genirq, mfd: " Jiang Liu
2015-06-04  4:13 ` [RFT v2 48/48] genirq, drivers: " Jiang Liu
2015-06-04  6:59 ` [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Geert Uytterhoeven
2015-06-04  7:23   ` Jiang Liu
2015-06-05  3:53   ` Fengguang Wu
2015-06-05  0:22 ` Daniel Axtens
2015-06-05  1:15   ` Jiang Liu

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=1433391238-19471-42-git-send-email-jiang.liu@linux.intel.com \
    --to=jiang.liu@linux.intel.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=cl@linux.com \
    --cc=hpa@zytor.com \
    --cc=konrad.wilk@oracle.com \
    --cc=lguest@lists.ozlabs.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=yinghai@kernel.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;
as well as URLs for NNTP newsgroup(s).