lkml.org 
[lkml]   [2011]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [regression] WARNING: at drivers/block/floppy.c:2929 do_fd_request+0xb7/0xb9() in 3.2.0-rc2 and 3
On Mon, 5 Dec 2011 10:32:36 -0800
Tejun Heo <tj@kernel.org> wrote:

> On Mon, Dec 05, 2011 at 08:21:14PM +0300, Sergei Trofimovich wrote:
> > Same here on 3.2.0-rc4-00077-g5983fe2
> >
> > 'swapper' cmd looks suspicious.
> > [ CCing someone who is familar with block layer, sorry in advance ]
> >
> > [ 3.792015] floppy0: no floppy controllers found
> > [ 3.792274] ------------[ cut here ]------------
> > [ 3.792434] WARNING: at drivers/block/floppy.c:2929 do_fd_request+0xbf/0xd0()
> > [ 3.792587] Hardware name: To Be Filled By O.E.M.
> > [ 3.792738] VFS: do_fd_request called on non-open device
> > [ 3.792889] Modules linked in:
> > [ 3.793008] Pid: 1, comm: swapper Not tainted 3.2.0-rc4-00077-g5983fe2 #2
> > [ 3.793008] Call Trace:
> > [ 3.793008] [<ffffffff81039a6a>] warn_slowpath_common+0x7a/0xb0
> > [ 3.793008] [<ffffffff81039b41>] warn_slowpath_fmt+0x41/0x50
> > [ 3.793008] [<ffffffff813d657f>] do_fd_request+0xbf/0xd0
> > [ 3.793008] [<ffffffff81322b95>] blk_drain_queue+0x65/0x80
> > [ 3.793008] [<ffffffff81322c93>] blk_cleanup_queue+0xe3/0x1a0
> > [ 3.793008] [<ffffffff818a809d>] floppy_init+0xdeb/0xe28
> > [ 3.793008] [<ffffffff818a72b2>] ? daring+0x6b/0x6b
> > [ 3.793008] [<ffffffff810002af>] do_one_initcall+0x3f/0x170
> > [ 3.793008] [<ffffffff81884b34>] kernel_init+0x9d/0x11e
> > [ 3.793008] [<ffffffff810317c2>] ? schedule_tail+0x22/0xa0
> > [ 3.793008] [<ffffffff815dbb14>] kernel_thread_helper+0x4/0x10
> > [ 3.793008] [<ffffffff81884a97>] ? start_kernel+0x2be/0x2be
> > [ 3.793008] [<ffffffff815dbb10>] ? gs_change+0xb/0xb
> > [ 3.793008] ---[ end trace c5807061655fec8c ]---
>
> Does the following patch make the warning go away?

It does. Thank you!
Tried to boot only once with patch though (is bug deterministic?)

> Thanks.
>
> block/blk-core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/block/blk-core.c b/block/blk-core.c
> index ea70e6c..653cc22 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -366,7 +366,8 @@ void blk_drain_queue(struct request_queue *q, bool drain_all)
> if (drain_all)
> blk_throtl_drain(q);
>
> - __blk_run_queue(q);
> + if (!list_empty(&q->queue_head))
> + __blk_run_queue(q);
>
> if (drain_all)
> nr_rqs = q->rq.count[0] + q->rq.count[1];

--

Sergei
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2011-12-05 20:21    [W:0.046 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site