* Scheduling while atomic in tty code with cdc-acm driver, kernel 2.6.29.1
@ 2009-04-13 23:36 Chuck Ebbert
2009-04-13 23:50 ` Oliver Neukum
0 siblings, 1 reply; 3+ messages in thread
From: Chuck Ebbert @ 2009-04-13 23:36 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-usb
BUG: sleeping function called from invalid context at kernel/mutex.c:88
in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper
Pid: 0, comm: swapper Not tainted 2.6.29.1-54.fc11.x86_64 #1
Call Trace:
<IRQ> [<ffffffff8104255c>] __might_sleep+0x10b/0x110
[<ffffffff813a8f2c>] mutex_lock+0x22/0x38
[<ffffffff8103f597>] ? enqueue_task_fair+0x2a/0x6d
[<ffffffff8122f794>] echo_char+0x25/0x81
[<ffffffff81230e03>] n_tty_receive_buf+0x309/0xe50
[<ffffffff8103be38>] ? task_rq_unlock+0x11/0x13
[<ffffffff81042d5c>] ? default_wake_function+0x12/0x14
[<ffffffff8103a1e0>] ? __wake_up_common+0x4e/0x84
[<ffffffff8104fe2d>] ? __tasklet_schedule+0x77/0x8e
[<ffffffff8102af47>] ? default_spin_lock_flags+0x9/0xe
[<ffffffff81232a48>] ? tty_ldisc_try+0x3c/0x44
[<ffffffff81233781>] flush_to_ldisc+0x10c/0x19f
[<ffffffff81233864>] tty_flip_buffer_push+0x50/0x61
[<ffffffffa03ab6ef>] acm_rx_tasklet+0x10c/0x28c [cdc_acm]
[<ffffffff81050025>] tasklet_action+0x8e/0xf8
[<ffffffff81050803>] __do_softirq+0x94/0x179
[<ffffffff810127cc>] call_softirq+0x1c/0x30
[<ffffffff8101394e>] do_softirq+0x52/0xb9
[<ffffffff81050426>] irq_exit+0x53/0x90
[<ffffffff81013c77>] do_IRQ+0x12c/0x151
[<ffffffff81011f13>] ret_from_intr+0x0/0x2e
<EOI> [<ffffffff812187bd>] ? acpi_idle_enter_bm+0x28f/0x2de
[<ffffffff812187b5>] ? acpi_idle_enter_bm+0x287/0x2de
[<ffffffff812ee957>] ? cpuidle_idle_call+0x8d/0xc2
[<ffffffff810102c7>] ? cpu_idle+0x68/0xb3
[<ffffffff813a435c>] ? start_secondary+0x199/0x19e
Partial trace by kernel line numbers:
drivers/char/n_tty.c:828
drivers/char/n_tty.c:1160
drivers/char/tty_buffer.c:444
drivers/char/tty_buffer.c:486
if (tty->low_latency)
flush_to_ldisc(&tty->buf.work.work);
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Scheduling while atomic in tty code with cdc-acm driver, kernel 2.6.29.1
2009-04-13 23:36 Scheduling while atomic in tty code with cdc-acm driver, kernel 2.6.29.1 Chuck Ebbert
@ 2009-04-13 23:50 ` Oliver Neukum
2009-04-14 6:12 ` Alan Cox
0 siblings, 1 reply; 3+ messages in thread
From: Oliver Neukum @ 2009-04-13 23:50 UTC (permalink / raw)
To: Chuck Ebbert; +Cc: linux-kernel, linux-usb
Am Dienstag 14 April 2009 01:36:33 schrieb Chuck Ebbert:
> BUG: sleeping function called from invalid context at kernel/mutex.c:88
> in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper
> Pid: 0, comm: swapper Not tainted 2.6.29.1-54.fc11.x86_64 #1
Is this specific to 2.6.29.1? It looks like setting low_latency, as cdc-acm,
does for legacy reasons, is harmful now. Please remove these lines:
/* force low_latency on so that our tty_push actually forces the data
through,
otherwise it is scheduled, and with high data rates data can get lost. */
tty->low_latency = 1;
HTH
Oliver
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Scheduling while atomic in tty code with cdc-acm driver, kernel 2.6.29.1
2009-04-13 23:50 ` Oliver Neukum
@ 2009-04-14 6:12 ` Alan Cox
0 siblings, 0 replies; 3+ messages in thread
From: Alan Cox @ 2009-04-14 6:12 UTC (permalink / raw)
To: Oliver Neukum; +Cc: Chuck Ebbert, linux-kernel, linux-usb
On Tue, 14 Apr 2009 01:50:10 +0200
Oliver Neukum <oliver@neukum.org> wrote:
> Am Dienstag 14 April 2009 01:36:33 schrieb Chuck Ebbert:
> > BUG: sleeping function called from invalid context at kernel/mutex.c:88
> > in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper
> > Pid: 0, comm: swapper Not tainted 2.6.29.1-54.fc11.x86_64 #1
>
> Is this specific to 2.6.29.1? It looks like setting low_latency, as cdc-acm,
> does for legacy reasons, is harmful now. Please remove these lines:
The only thing that has changed is that this incorrect behaviour (setting
low_latency and doing a flip_buffer_push() in IRQ context) now causes a
warn rather than random failure.
The hack setting of it for high data rate devices was obsolete when the
tty buffer changes went in so it can definitely go in those cases.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-04-14 6:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-13 23:36 Scheduling while atomic in tty code with cdc-acm driver, kernel 2.6.29.1 Chuck Ebbert
2009-04-13 23:50 ` Oliver Neukum
2009-04-14 6:12 ` Alan Cox
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®