Problem with serial_throttle in mos7840.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

i am using on kernel 2.6.24.4 the Moschip 7840 Quad-UART (driver version 1.3.1) which is connected through usb. When i use Hardware handshake (RTS/CTS) and serial_throttle is called
i get follwing message:

BUG: scheduling while atomic: testserial/0x00010000/786
[<c02c4506>] __sched_text_start+0x5e/0x7c5
[<e15c272c>] usb_hcd_submit_urb+0x6c9/0x75d [usbcore]
[<c011e189>] task_rq_lock+0x44/0x6e
[<c012c908>] lock_timer_base+0x19/0x35
[<c012ca1c>] __mod_timer+0x9a/0xa4
[<c02c53b2>] schedule_timeout+0x70/0x8f
[<c012c683>] process_timeout+0x0/0x5
[<c02c53ad>] schedule_timeout+0x6b/0x8f
[<c02c4f04>] wait_for_completion_timeout+0x7c/0xde
[<c011fccc>] default_wake_function+0x0/0xc
[<e15c309c>] usb_start_wait_urb+0x52/0x87 [usbcore]
[<e15c32b7>] usb_control_msg+0xc3/0xde [usbcore]
[<e12d74c2>] mos7840_set_uart_reg+0xab/0xb2 [mos7840]
[<e12d8660>] mos7840_throttle+0x136/0x13d [mos7840]
[<e131a3e3>] serial_throttle+0x7b/0x80 [usbserial]
[<c017aa95>] kill_fasync+0x23/0x2e
[<c0229993>] n_tty_receive_buf+0xc92/0xcb5
[<c011da7e>] __wake_up_common+0x35/0x53
[<c011e038>] __wake_up+0x32/0x43
[<c0156734>] mempool_free+0x66/0x6b
[<c018f0fb>] bio_put+0x23/0x24
[<c01931a9>] mpage_end_io_read+0x5e/0x66
[<c019314b>] mpage_end_io_read+0x0/0x66
[<c018f41f>] bio_endio+0x61/0x69
[<c01c302e>] __end_that_request_first+0x18b/0x423
[<c0225b2e>] tty_buffer_request_room+0x101/0x10c
[<c0224e1b>] tty_ldisc_try+0x2e/0x33
[<c022538e>] flush_to_ldisc+0xc1/0xfe
[<e12d72bd>] mos7840_bulk_in_callback+0x159/0x1ef [mos7840]
[<e153289c>] scsi_end_request+0xa1/0xab [scsi_mod]
[<e15c14ad>] usb_hcd_giveback_urb+0x28/0x57 [usbcore]
[<e151ccd9>] ehci_urb_done+0x6a/0x74 [ehci_hcd]
[<e151d52b>] qh_completions+0x2ad/0x324 [ehci_hcd]
[<c0138883>] update_wall_time+0x54f/0x6de
[<e151d636>] ehci_work+0x94/0x61a [ehci_hcd]
[<c013769a>] hrtimer_run_queues+0xe3/0x1a1
[<e1520814>] ehci_irq+0x136/0x159 [ehci_hcd]
[<e15c1784>] usb_hcd_irq+0x4c/0x54 [usbcore]
[<c0150307>] handle_IRQ_event+0x23/0x51
[<c0151544>] handle_fasteoi_irq+0x9b/0xa8
[<c0107481>] do_IRQ+0x79/0x90
[<c0117bde>] smp_apic_timer_interrupt+0x71/0x7d
[<c0105e73>] common_interrupt+0x23/0x30
=======================
BUG: scheduling while atomic: testserial/0x00010000/786
[<c02c4506>] __sched_text_start+0x5e/0x7c5
[<c012c978>] del_timer_sync+0xa/0x14
[<c02c53bb>] schedule_timeout+0x79/0x8f
[<e15c15ab>] unlink1+0x98/0x9c [usbcore]
[<e15c202e>] usb_hcd_unlink_urb+0x104/0x139 [usbcore]
[<e15c2ac1>] usb_kill_urb+0x9d/0xcc [usbcore]
[<c01351b5>] autoremove_wake_function+0x0/0x33
[<e15c30a7>] usb_start_wait_urb+0x5d/0x87 [usbcore]
[<e15c32b7>] usb_control_msg+0xc3/0xde [usbcore]
[<e12d74c2>] mos7840_set_uart_reg+0xab/0xb2 [mos7840]
[<e12d8660>] mos7840_throttle+0x136/0x13d [mos7840]
[<e131a3e3>] serial_throttle+0x7b/0x80 [usbserial]
[<c017aa95>] kill_fasync+0x23/0x2e
[<c0229993>] n_tty_receive_buf+0xc92/0xcb5
[<c011da7e>] __wake_up_common+0x35/0x53
[<c011e038>] __wake_up+0x32/0x43
[<c0156734>] mempool_free+0x66/0x6b
[<c018f0fb>] bio_put+0x23/0x24
[<c01931a9>] mpage_end_io_read+0x5e/0x66
[<c019314b>] mpage_end_io_read+0x0/0x66
[<c018f41f>] bio_endio+0x61/0x69
[<c01c302e>] __end_that_request_first+0x18b/0x423
[<c0225b2e>] tty_buffer_request_room+0x101/0x10c
[<c0224e1b>] tty_ldisc_try+0x2e/0x33
[<c022538e>] flush_to_ldisc+0xc1/0xfe
[<e12d72bd>] mos7840_bulk_in_callback+0x159/0x1ef [mos7840]
[<e153289c>] scsi_end_request+0xa1/0xab [scsi_mod]
[<e15c14ad>] usb_hcd_giveback_urb+0x28/0x57 [usbcore]
[<e151ccd9>] ehci_urb_done+0x6a/0x74 [ehci_hcd]
[<e151d52b>] qh_completions+0x2ad/0x324 [ehci_hcd]
[<c0138883>] update_wall_time+0x54f/0x6de
[<e151d636>] ehci_work+0x94/0x61a [ehci_hcd]
[<c013769a>] hrtimer_run_queues+0xe3/0x1a1
[<e1520814>] ehci_irq+0x136/0x159 [ehci_hcd]
[<e15c1784>] usb_hcd_irq+0x4c/0x54 [usbcore]
[<c0150307>] handle_IRQ_event+0x23/0x51
[<c0151544>] handle_fasteoi_irq+0x9b/0xa8
[<c0107481>] do_IRQ+0x79/0x90
[<c0117bde>] smp_apic_timer_interrupt+0x71/0x7d
[<c0105e73>] common_interrupt+0x23/0x30
=======================

I found some similar messages when i searched this with google...
So how can i avoid this? The function serial_throttle is called from an interrupt and then usb_control_msg is called, which seems to be not allowed...but i have to use this to get access to the hardware registers of the MOS7840. How can i solve this problem?

Regards

Tobias

_______________________________________________________________________
NUR NOCH BIS 31.01.! WEB.DE FreeDSL - Telefonanschluss + DSL
für nur 16,37 EURO/mtl.!* http://dsl.web.de/?ac=OM.AD.AD008K13805B7069a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux