lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Sun, 05 Nov 2006 06:56:23 -0800
From:	William D Waddington <william.waddington@...zmo.com>
To:	Alexey Dobriyan <adobriyan@...il.com>
CC:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] IRQ: ease out-of-tree migration to new irq_handler prototype



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
william.waddington@...zmo.com
--------------------------------------------
"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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ