Re: mcdx -- do_request(): non-read command to cd!!

From: Pekka Enberg
Date: Sun Apr 01 2007 - 06:07:46 EST


On 3/31/07, Rene Herman <rene.herman@xxxxxxxxx> wrote:
There's quite a bit of noise in dmesg though. Repeated 5 times:

===BUG: scheduling while atomic: mount/0x00000001/1166
[<c1170bff>] __sched_text_start+0x57/0x574
[<c1171964>] schedule_timeout+0x70/0x8f
[<c10199b2>] process_timeout+0x0/0x5
[<c11716a2>] interruptible_sleep_on_timeout+0x5d/0xa5
[<c100e695>] default_wake_function+0x0/0xc
[<c482b8fb>] mcdx_xfer+0xae/0x2a5 [mcdx]

[snip]

[<c482b473>] do_mcdx_request+0x9b/0xd2 [mcdx]
[<c1096d06>] __generic_unplug_device+0x1d/0x1f
[<c1096d19>] generic_unplug_device+0x11/0x29

Looks like mcdx_xfer is sleeping while holding q->queue_lock. The
attached (untested) patch should fix it.

Attachment: mcdx-drop-queue_lock-before-sleeping
Description: Binary data