Am Donnerstag 09 August 2007 20:34 schrieb Oliver Endriss: > Well, that's not surprising. > If you set uselocks=1, ttpci_budget_debiread/write must not sleep, > i.e. you have to set nobusyloop=0. Does it work now? > > Nevertheless I don't like busy looping with interrupts disabled. > AFAICS the budget_debi routines are never called from interrupt context, > so it should be sufficient to use spin_[un]lock_bh() instead of > spin_[un]lock_irq_save(). Could you please try this? When I switch from irq-lock to bh-lock while keeping uselocks = 1, the error changes: BUG: scheduling while atomic: kdvb-ca-0:0/0x00000101/28258 [<c03c51a6>] __sched_text_start+0x56/0x7a4 [<c012c4bd>] lock_timer_base+0x15/0x2f [<c012c5c9>] __mod_timer+0x94/0x9e [<c03c6054>] schedule_timeout+0x70/0x8d [<c03c5869>] __sched_text_start+0x719/0x7a4 [<c012bbfd>] process_timeout+0x0/0x5 [<c012c5e0>] msleep+0xd/0x12 [<e0b5fe23>] saa7146_wait_for_debi_done+0xda/0xec [saa7146] [<e0b7378c>] ttpci_budget_debiread+0x44/0xce [budget_core] [<e0c0528b>] ciintf_poll_slot_status+0x99/0x146 [budget_av] [<e0c432d0>] dvb_ca_en50221_check_camstatus+0x37/0xae [dvb_core] [<e0c44493>] dvb_ca_en50221_thread+0x1c7/0xb24 [dvb_core] [<c0134be4>] autoremove_wake_function+0x0/0x35 [<c012deb4>] do_notify_parent+0x155/0x160 [<c011d46b>] deactivate_task+0x19/0x23 [<c016071f>] __fput+0x112/0x13c [<c0125b8f>] put_files_struct+0x64/0xa7 [<c0127072>] do_exit+0x6a9/0x6ad [<c03c8a61>] do_page_fault+0x277/0x525 [<c03c9612>] kprobe_flush_task+0x4b/0x80 [<c012118f>] schedule_tail+0x4f/0x87 [<c0103d46>] ret_from_fork+0x6/0x1c [<e0c442cc>] dvb_ca_en50221_thread+0x0/0xb24 [dvb_core] [<c0104a37>] kernel_thread_helper+0x7/0x10 ======================= If I disable nobusyloop the errors are gone. I will check if the CI-module keeps working properly. -Julian _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb