On Sun, 2005-08-28 at 15:23 -0500, fdl(a)scottl.com wrote:
I am trying to add my own interrupt handler to FC3. I have tried two methods
of modifying the IDT, both of which work under most kernels I've tried (incl
the 2.6.9 vanilla kernel) but fail under the FC3 kernel (2.6.9-1.667). I've
also tried the FC3 kernel with the alternate security models off, and large
memory support off, but I have the same problem. Although I haven't tried it
yet personally, I've been told that some code I have working on the vanilla
2.6.9 kernel works fine under FC4.
Method 1 is to just modify the IDT in place. This causes a segfault on FC3.
Method 2 is to make a copy of the IDT, modify the copy, and then use lidt to
change the IDT used by the processor to the copy. This causes an immediate
reboot on FC3.
Any pointers on what I might be doing wrong? What is the "correct" or
"officially supported" way of adding an interrupt handler on FC3?
the only way that'll work is to just use request_irq() in your kernel
module. Anything else is such a gross hack that it won't ever work
reliable. (for example, IDT's may well be per cpu, or read only memory)