Re: [RFCLUE3] flagging kernel interface changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jesper Juhl wrote:
On 15/11/06, William D Waddington <[email protected]> wrote:

I tried submitting a patch a while back:
"[PATCH] IRQ: ease out-of-tree migration to new irq_handler prototype"
to add #define __PT_REGS to include/linux/interrupt.h to flag the change
to the new interrupt handler prototype.  It wasn't well received :(

No big surprise.  The #define wasn't my idea and I hadn't submitted a
patch before.  I wanted to see how the patch procedure worked, and
hoped that the flag would be included so I could mod my drivers and
move on...

What I'm curious about is why flagging kernel/driver interface changes
is considered a bad idea.  From my point of view as a low-life out-of-
tree driver maintainer,

#ifdef NEW_INTERFACE
#define <my new internals>
#endif

(w/maybe an #else...)

is cleaner and safer than trying to track specific kernel versions in
a multi-kernel-version driver.  It seems that in some cases, the new
interface has been, like HAVE_COMPAT_IOCTL for instance.

I don't want to start an argument about "stable_api_nonsense" or the
wisdom of out-of-tree drivers.  Just curious about the - why - and
whether it is indifference or antagonism toward drivers outside the
fold. Or ???


I would say that one reason is that cluttering up the kernel with
#ifdef's is ugly and annoying to maintain long-term. Especially when
it's expected that anyone who changes in-kernel interfaces also fix up
any user(s) of those interfaces, so the #ifdef's are pointless
(ignoring out-of-tree code that is).

Ah, but out-of-tree code is what I'm stuck w/maintaining.  I wouldn't
want to infest in-tree drivers w/#ifdef's either, but they are a fact
of life in my world.  And, lately, _really_ ugly version tests.

If I had _my_ way, there would be a kernel_interface_change.h file that
had an #define'd entry for _every_ kernel interface change within a
major release series:

/*
 * include/linux/interrupt.h interface change x.y.z
 * interrupt handler now takes 2 args
 */
#define INTERRUPT_H_CHANGE_X.Y.Z "interrupt handler now takes 2 args"

or something.

I understand that many (most?) kernel maintainers would prefer that
all drivers be brought in-tree, and aren't particularly concerned
when interface changes affect out-of-tree drivers.

Respectfully, I suggest that world domination isn't quite the same
thing as world dictatorship, and maybe the road to the former would
be helped by a little less of the latter :)

Rat-bastard out-of-tree maintainer takes refuge under desk....

Thanks,
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]
  Powered by Linux