驱动程序通过用于中断注册的IRQF_ONESHOT方式处理中断,后半部分需要显示处理中断掩码位,但掩码的处理最好有系统帧代码。 建议将中断请求更改为request_threaded_irq,而不是_ring_wk
diff-- gita/rtloader/vbus/Linux _ driver.CB/rtloader/vbus/Linux _ driver.c
索引a 509857 . 2111 dcb 100644
--- a/rtloader/vbus/Linux _ driver.c
@ @-999,13999,18 @ (@ static void _ vbus _ ISR _ bridge (struct work _ struct奇怪的心情work ) ) ) ) ) ) )
staticirqreturn _ t _ vbus _ ISR2(int IRQ,void的奇怪心情dev_id ) ) ) ) ) ) ) ) ) )。
{
-if(IRQ!=rt _ vbus _ guest _ virq (return IRQ _ handled;
',irq;
if(in_ring-blocked ) )
ake _ up _ interruptible _ all (do _ post _ wait );
-queue_work(_ring_wkq,_ring_wk );
- return IRQ_HANDLED;
}
intdriver_load(void __iomem奇怪的心情outr,void__iomem奇怪的心情inr ) )。
@ @-1029,91034,13 @ @ int driver _ load (void__iomem奇怪的心情outr,void _ _ iomem奇怪的心情inr ) )。
res=0;
}
#else
- RES=request _ IRQ (rt _ vbus _ guest _ virq _ IRQ _ offset,
_vbus_isr2,IRQF_ONESHOT,
' VMM-BUS ',NULL;
#endif
if(RES ) {
pr _ err (errorrequestrttvmmbusirq : % d
',res;