Re: [PATCH] IRQ: ease out-of-tree migration to new irq_handler prototype

Alexey Dobriyan
2006-11-05T02:04:37Z

On Sat, Nov 04, 2006 at 12:06:53PM -0800, William D Waddington wrote:
> Alexey Dobriyan wrote:
> >On Sat, Nov 04, 2006 at 10:29:37AM -0800, William D Waddington wrote:
> >
> >>Ease out-of-tree driver migration to new irq_handler prototype.
> >>Define empty 3rd argument macro for use in multi kernel version
> >>out-of-tree drivers going forward. Backportable drives can do:
> >>
> >>(in a header)
> >>#ifndef __PT_REGS
> >># define __PT_REGS , struct pt_regs *regs
> >>#endif
> >
> >
> >Backportable drivers should check kernel version themselves and define
> >__PT_REGS themselves.
>
> I think I provided too much information :( It would be sufficiently
> helpful to just #define __PT_REGS <nothing> in interrupt.h to make
> things easier for low-life out-of-tree maintainers. There isn't any
> need to actualy detect version. Just detect __PT_REGS already defined.

Out-of-tree maintainer will have to change his code ANYWAY. And while he
is doing that, he can spend 10 seconds to add 5-line version check.

More, if you've followed pt_regs removal patches, you'd noticed that
some of them were not trivial. In this case version check is least of
his worries.

> The "in a header" above referred to the driver's header - #ifdefs in
> executable code really looks nasty IMHO.
>
> The "#define __PT_REGS , ..." comment below was intended to be a
> "helpful" note to driver writers. Like I said, TMI.
>
> >>(in code body)
> >>static irqreturn_t irq_handler(int irq, void *dev_id __PT_REGS)
> >
> >
> >>+/*
> >>+ * Irq handler migration helper - empty 3rd argument
> >>+ * #define __PT_REGS , struct pt_regs *regs
> >>+ * for older kernel versions
> >>+ */
> >>+
> >>+#define __PT_REGS
>
> How should I tidy this up - if it is acceptable at all?

No, this is not acceptable.