All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Yinghai Lu <yinghai@kernel.org>, Ingo Molnar <mingo@elte.hu>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	LKML <linux-kernel@vger.kernel.org>, Julia Lawall <julia@diku.dk>
Subject: Re: [PATCH 06/12] genericirq: make irq_chip related function to take desc
Date: Sat, 20 Mar 2010 21:18:34 -0700	[thread overview]
Message-ID: <m1eije71et.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <Pine.LNX.4.64.1003050847170.21768@ask.diku.dk> (Julia Lawall's message of "Fri\, 5 Mar 2010 08\:47\:30 +0100 \(CET\)")


I haven't heard anything more on this, but I had reason to play with
coccinelle http://coccinelle.lip6.fr/ which I think is think think is
the semantic patcher you referred to.

In any case I was playing with it and I believe I have managed to whip
up a fairly robust semantic patch.  The last two hunks are to cleanup
earlier transforms, by removing unnecessary irq_to_desc chatter, and
removing unused variables.  I am a big grumpy that I couldn't figure
out how to add comments to my patch to explain the tricky bits,
but otherwise I am happy.

The patch appears to have the limitation that methods that are not in
the file where struct irq_chip is defined, which is an issue for the
msi irq_chip helper routines.  Other than that I don't know of any
issues.

I would suggest changing as much of the x86 non irq_chip helpers to
use irq_desc before applying this so it this the conversion can have
the chance to remove any irq variables.

Eric


@ DECL @
struct irq_chip CHIP;
identifier METHOD;
identifier METHOD_NAME;
@@
 CHIP.METHOD_NAME = METHOD;

@ @
identifier DECL.METHOD;
identifier IRQ;
@@
 METHOD(
-		unsigned int IRQ
+		struct irq_desc *unused
 , ...) {
 }

@ @
identifier DECL.METHOD;
identifier IRQ;
identifier DESC;
@@
 METHOD(
-		unsigned int IRQ
+		struct irq_desc *DESC
 , ...) {
+	unsigned int IRQ = DESC->irq;
 	...
-	struct irq_desc *DESC = irq_to_desc(IRQ);
	...
 }

@ @
identifier DECL.METHOD;
identifier IRQ;
identifier DESC;
@@
 METHOD(
-		unsigned int IRQ
+		struct irq_desc *DESC
 , ...) {
+	unsigned int IRQ = DESC->irq;
 	...
-	struct irq_desc *DESC;
	...
-	DESC = irq_to_desc(IRQ);
	...
 }

@ @
identifier DECL.METHOD;
identifier IRQ;
@@
 METHOD(
-		unsigned int IRQ
+		struct irq_desc *desc
 , ...) {
+	unsigned int IRQ = desc->irq;
 ...
 }

@ @
identifier DECL.METHOD;
identifier FUNC;
identifier IRQ;
@@
 FUNC(...) {
 <...
	METHOD(
-		IRQ
+		irq_to_desc(IRQ)
 		, ... )
 ...>
 }

@ @
identifier FUNC;
identifier DESC;
identifier IRQ;
@@
 FUNC(..., struct irq_desc *DESC, ...) {
 ...
 	unsigned int IRQ = DESC->irq;
 <...
-	irq_to_desc(IRQ)
+	DESC
 ...>
 }

@ @
identifier FUNC;
identifier DESC;
identifier IRQ;
@@
 FUNC(..., struct irq_desc *DESC, ...) {
 ...
-	unsigned int IRQ = DESC->irq;
 ... when != IRQ
 }

  reply	other threads:[~2010-03-21  4:18 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-04 10:08 [PATCH 0/12] irq related: make function to take irq_desc pointer instead of irq Yinghai Lu
2010-03-04 10:08 ` [PATCH 01/12] x86: fix out of order of gsi - full Yinghai Lu
2010-03-04 10:08 ` [PATCH 02/12] x86: set nr_irqs_gsi only in probe_nr_irqs_gsi Yinghai Lu
2010-03-04 10:08 ` [PATCH 03/12] x86: kill smpboot_hooks.h Yinghai Lu
2010-03-04 10:08 ` [PATCH 04/12] x86: use vector_desc instead of vector_irq Yinghai Lu
2010-03-04 10:08 ` [PATCH 05/12] genericirq: make irq_chip to have member with irq_desc pointer Yinghai Lu
2010-03-04 10:08 ` [PATCH 06/12] genericirq: make irq_chip related function to take desc Yinghai Lu
2010-03-04 14:31   ` Thomas Gleixner
2010-03-04 18:56     ` Yinghai Lu
2010-03-04 19:08       ` Thomas Gleixner
2010-03-04 19:20         ` Yinghai Lu
2010-03-05  7:47       ` Julia Lawall
2010-03-21  4:18         ` Eric W. Biederman [this message]
2010-03-21 11:03           ` Julia Lawall
2010-03-21 13:11             ` [PATCH] irq: Start the transition of irq_chip methods taking a desc Eric W. Biederman
2010-03-21 13:11               ` Eric W. Biederman
2010-03-21 14:43               ` Thomas Gleixner
2010-03-21 18:50                 ` Yinghai Lu
2010-03-22  0:32                 ` Eric W. Biederman
2010-03-21 13:49             ` [PATCH 06/12] genericirq: make irq_chip related function to take desc Eric W. Biederman
2010-03-21 14:19               ` Julia Lawall
2010-03-21 16:29               ` Julia Lawall
2010-03-21 11:08           ` Julia Lawall
2010-03-21 11:43             ` Eric W. Biederman
2010-03-21 19:16           ` Julia Lawall
2010-03-21 19:35           ` Julia Lawall
2010-03-21 19:36           ` Julia Lawall
2010-03-22  0:36             ` Eric W. Biederman
2010-03-04 19:18     ` Yinghai Lu
2010-03-04 10:08 ` [PATCH 07/12] genericirq: make hpet_msi/ht/msi/dmar_msi " Yinghai Lu
2010-03-04 10:08 ` [PATCH 08/12] x86: make irq_chip to use desc_mask instead of mask Yinghai Lu
2010-03-04 15:10   ` [PATCH 08/12] x86: make irq_chip to use desc_mask instead of maskn Thomas Gleixner
2010-03-04 10:08 ` [PATCH 09/12] x86: irq_chip to use desc_mask instead of mask part 2 Yinghai Lu
2010-03-04 10:08 ` [PATCH 10/12] genericirq: add set_irq_desc_chip/data Yinghai Lu
2010-03-04 10:08 ` [PATCH 11/12] x86/iommu/dmar: update iommu/inter_remapping to use desc Yinghai Lu
2010-03-04 10:08 ` [PATCH 12/12] x86: remove arch_probe_nr_irqs Yinghai Lu

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=m1eije71et.fsf@fess.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=julia@diku.dk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=suresh.b.siddha@intel.com \
    --cc=tglx@linutronix.de \
    --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 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.