On Fri, Jan 08, 2016 at 04:29:49PM +0000, Luck, Tony wrote:
I thought the guideline was that new features are GPL, but changes
to existing features shouldn't break by adding new GPL requirements.
The point is moot though because the shared hallucinations wore
off this morning and I realized that having the "handler" be a pointer
to a function can't work. We're storing the 32-bit signed offset from
the extable to the target address. This is fine if the table and the
address are close together. But for modules we have an exception
table wherever vmalloc() loaded the module, and a function back
in the base kernel.
Whoops, true story.
So back to your ".long 0" for the default case. And if we
want to allow
modules to use any of the new handlers, then we can't use
relative function pointers for them either.
So I'm looking at making the new field just a simple integer and using
it to index an array of function pointers (like in v7).
Right, that sounds good too. I guess we can even split the integer into
[0 ... 7][8 ... 31]
where slice [0:7] is an index into the handlers array and the remaining
unused 24-bits could be used for other stuff later. Normal addition as a
way to OR values should work.
ECO tip #101: Trim your mails when you reply.