割り込みの排他処理に関するバグ(2)
昨日のエントリにコメントをいただきました。
ujinosuke 2009/05/18 12:55 #16714は candidates = priori... の部分をi_lock_cpu()等でLockすることで解決はできませんでしょうか? #16729 はdis_intする前に必ず対象デバイスをOFFして(割り込みをかからないようにして)から呼ぶという、対処方法でもよいでしょうか?
#16714
私はその方法での解決を考えています。ただ、一つ問題があります。割り込みの保護範囲は、interrupt_dispatcher()を呼ぶ前から始まらなければなりません。そして、candidateの算出後に保護を解除します。つまり、保護の範囲がinterrupt_dipsatcher()の呼び出しをまたぎます。
#16729
その方法で上手く機能します。が、そこまでするならSIC_IMASKをいじる必要が無いんですよね(^^;