割り込み処理の全体像を類推

kernel2.4 な文書によると

    do_IRQ(割り込み番号IRQ、...)
         同種の割り込みが入らないように、割込みのマスクを行う。
         割込みに対するACKを割り込みコントローラに返す。
         handle_IRQ_event(割り込み番号IRQ、irq_desc[]に登録されているハンドラのリスト)
         割込みマスクの解除

    handle_IRQ_event(割り込み番号IRQ、ハンドラリスト)
         割り込みハンドラ開始宣言(irq_enter関数)
         if(割り込みのネストを許すハンドラなら)
                 CPUの割り込み許可

             登録されている場合は、全てのハンドラを呼ぶ。
         CPUの割り込み禁止
         割り込みハンドラ終了宣言(irq_exit関数)

割り込みハンドラの起動 (Linux V2.4 カーネル内部解析報告 ドラフト 第4 版)より引用
という事だったらしいが、2.6 では若干組み立てが異なる事がわかった。パクリで申し訳ないが 2.6 なナニを以下に。(間違っているかもしれません)

    do_IRQ(割り込み番号IRQ、...)
         割り込みハンドラ開始宣言(irq_enter関数)
         __do_IRQ()
         割り込みハンドラ終了宣言(irq_exit関数)

    __do_IRQ(割り込み番号IRQ、...)
         同種の割り込みが入らないように、割込みのマスクを行う。
         割込みに対するACKを割り込みコントローラに返す。
         handle_IRQ_event(割り込み番号IRQ、irq_desc[]に登録されているハンドラのリスト)
         割込みマスクの解除

    handle_IRQ_event(割り込み番号IRQ、ハンドラリスト)
         if(割り込みのネストを許すハンドラなら)
                 CPUの割り込み許可

             登録されている場合は、全てのハンドラを呼ぶ。
         CPUの割り込み禁止

__do_IRQ()#kernel/irq/handle.c で微妙な手続きが見える。多分ここ、ポイント高いな。上記擬似コード的には足らない部分や間違いが多いです。(断言
# コード見たら不足だらけ。

__do_IRQ() チェキ入れてく方向でハンドル修正予定。
オモシロげなんだが、まず上記の擬似コードに修正いれる方向で。ツッコミ始めたらきりが無さげに見える。しかもアーキテクチャ依存、ではなくなってるあたり (ファイルの投入場所から推測) もナニ。