Alexey Dobriyan wrote:
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.
I'm a little out of my depth here (obviously) but why is it "better" to
require a version check rather than the kernel simply flagging the
function change? Rather like HAVE_COMPAT_IOCTL.
With the proposed 1-line kernel patch my drivers build against kernels
back to 2.6.9 (the earliest I have around here) without any version
checking.
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.
Ah. I don't use the *regs arg. The one line patch just keeps the
compiler happy. And provides a "tidy" way to detect the interface
change if necessary.
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.
Oh well.
Thanks for your time,
Bill
--
--------------------------------------------
William D Waddington
Bainbridge Island, WA, USA
[email protected]
--------------------------------------------
"Even bugs...are unexpected signposts on
the long road of creativity..." - Ken Burtch
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]