[linux-dvb] budget-av/CI-interface with SMP
Julian Scheel
julian at jusst.de
Thu Aug 16 14:50:19 CEST 2007
Am Donnerstag 16 August 2007 13:12 schrieb Julian Scheel:
> 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.
If I disable nobusyloop the system becomes unresponsive after a while without
CAM plugged.
-Julian
More information about the linux-dvb
mailing list