[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