HPET interrupts can be either edge or level triggered. Probably we
should modify it according to the type of the interrupt line we're
trying to grab.
An edge-triggered HPET interrupt line is not shared (we set IRQF_SHARED
only if the register says that it's level triggered).
I don't have much of a clue about that "somehow", but this sound like a
good idea. ;-)
I think hpet_reserve_platform_timers() might be the place for this.
It gets called from hpet_late_init(), which is a fs_initcall, so I think
we should be careful not to grab some unsharable interrupt that might be
needed by some ISA device whose driver is initialized later.
(This was a bug in 2.6.25-rc5: <http://bugzilla.kernel.org/show_bug.cgi?id=10382>)
Regards,
Clemens
--