public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frederik Deweerdt <deweerdt@free.fr>
To: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mattia Dongili <malattia@linux.it>,
	Laurent Riffard <laurent.riffard@free.fr>,
	linux-kernel@vger.kernel.org, axboe@kernel.dk
Subject: [-mm patch] fix locking in __make_request (was Re: 2.6.20-mm2: Oops in generic_make_request)
Date: Tue, 20 Feb 2007 13:04:08 +0000	[thread overview]
Message-ID: <20070220130408.GB566@slug> (raw)
In-Reply-To: <6bffcb0e0702181205v5755fc0es284c5be32f85d304@mail.gmail.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=utf-8, Size: 1753 bytes --]

On Sun, Feb 18, 2007 at 09:05:33PM +0100, Michal Piotrowski wrote:
> On 18/02/07, Andrew Morton <akpm@linux-foundation.org> wrote:
> >On Sun, 18 Feb 2007 18:58:05 +0100 Mattia Dongili <malattia@linux.it> wrote:
> >
> >> On Sun, Feb 18, 2007 at 02:06:59PM +0100, Laurent Riffard wrote:
> >> > Le 18.02.2007 06:51, Andrew Morton a écrit :
> >> > >Temporarily at
> >> > >
> >> > >  http://userweb.kernel.org/~akpm/2.6.20-mm2/
> >> > >
> >> > >Will appear later at
> >> > >
> >> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20/2.6.20-mm2/
> >> >
> >> > Hello, I've got a fully reproducible Oops. I just have to boot to
> >> > runlevel 2 and wait less than one minute.
> >>
> >> Maybe this oops is related too?
> >
> >Looks that way.
> >
Hi Michal,

This seems to be a locking problem in __make_request, check_plug_merge()
should be called with the q->queue_lock held.
Could you try the following patch? It silenced the oops for me.

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>

diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index 577f448..666f34e 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -2919,14 +2919,14 @@ static int __make_request(request_queue_
 	 */
 	blk_queue_bounce(q, &bio);
 
+	spin_lock_irq(q->queue_lock);
 	/*
 	 * Check if we can merge with the plugged list before grabbing
 	 * any locks.
 	 */
 	if (!check_plug_merge(q, ioc, bio))
-		goto out;
+		goto out_unlock;
 
-	spin_lock_irq(q->queue_lock);
 	el_ret = elv_merge(q, &req, bio);
 	if (el_ret == ELEVATOR_BACK_MERGE) {
 		if (bio_attempt_back_merge(q, req, bio)) {
@@ -2984,7 +2984,6 @@ out_unlock:
 		list_add_tail(&req->queuelist, &ioc->plugged_list);
 	}
 
-out:
 	return 0;
 
 end_io_eopnotsupp:

  reply	other threads:[~2007-02-19 13:05 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-18  5:51 2.6.20-mm2 Andrew Morton
2007-02-18  6:18 ` 2.6.20-mm2 Dave Airlie
2007-02-18  6:34   ` 2.6.20-mm2 Andrew Morton
2007-02-18 12:44 ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-18 19:43   ` 2.6.20-mm2 Andrew Morton
2007-02-18 23:25     ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-18 23:39       ` 2.6.20-mm2 Michal Piotrowski
2007-02-19  0:00       ` 2.6.20-mm2 Andrew Morton
2007-02-19 11:28         ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-19 11:45           ` 2.6.20-mm2 Michal Piotrowski
2007-02-20  0:04             ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-20 21:16               ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-20 21:46                 ` 2.6.20-mm2 Jeff Garzik
2007-02-20  0:43         ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-20  1:20     ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-20  6:31       ` 2.6.20-mm2 Andrew Morton
2007-02-20 22:12         ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-18 13:06 ` 2.6.20-mm2: Oops in generic_make_request Laurent Riffard
2007-02-18 17:58   ` Mattia Dongili
2007-02-18 19:49     ` Andrew Morton
2007-02-18 20:05       ` Michal Piotrowski
2007-02-20 13:04         ` Frederik Deweerdt [this message]
2007-02-19 13:34           ` [-mm patch] fix locking in __make_request (was Re: 2.6.20-mm2: Oops in generic_make_request) Jens Axboe
2007-02-20 14:29             ` Frederik Deweerdt
2007-02-19 13:52           ` Michal Piotrowski
2007-02-19 14:08             ` Michal Piotrowski
2007-02-20 14:32               ` Frederik Deweerdt
2007-02-18 18:20 ` 2.6.20-mm2 Michal Piotrowski
2007-02-18 23:32 ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-19  0:28   ` 2.6.20-mm2 Andrew Morton
2007-02-19  5:13     ` 2.6.20-mm2 David Brownell
2007-02-20 22:07       ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-22  3:57         ` 2.6.20-mm2 David Brownell
2007-02-22  8:33           ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-22 22:17             ` 2.6.20-mm2 David Brownell
2007-02-23 16:36         ` 2.6.20-mm2 David Brownell
2007-03-04 22:36           ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-19 18:28     ` 2.6.20-mm2 Rafael J. Wysocki
2007-02-18 23:33 ` 2.6.20-mm2: compilation fix Rafael J. Wysocki
2007-02-19  0:29   ` Andrew Morton
2007-02-19 11:33     ` Rafael J. Wysocki
2007-02-20  0:07 ` [-mm patch] fs/9p/vfs_addr.c: make 2 functions static Adrian Bunk
2007-02-20  0:54   ` Eric Van Hensbergen
2007-02-20  0:07 ` [-mm patch] drivers/mmc/Kconfig source drivers/mmc/card/Kconfig Adrian Bunk
2007-02-20  6:45   ` Pierre Ossman
2007-02-20  0:08 ` [-mm patch] drivers/video/sm501fb.c: make 4 functions static Adrian Bunk
2007-02-20  0:08 ` 2.6.20-mm2: BLOCK=n compile error Adrian Bunk
2007-02-20  0:08 ` [-mm patch] UNION_FS must depend on SLAB Adrian Bunk
2007-02-20  6:37   ` Pekka Enberg
2007-02-20 15:13     ` Josef Sipek
2007-02-21  3:07       ` [Unionfs] " hooanon05
2007-02-21 22:19       ` Andrew Morton
2007-02-22  2:00         ` Josef Sipek
2007-02-22  2:26           ` Andrew Morton
2007-02-22  3:10             ` Josef Sipek
2007-02-22  6:17             ` Pekka Enberg
2007-02-22  6:18               ` Pekka Enberg
2007-02-22  6:28                 ` Josef Sipek
2007-02-22  6:42               ` Christoph Lameter
2007-02-22  2:33           ` [Unionfs] " Erez Zadok
2007-02-21  5:19   ` Josef Sipek
2007-02-20  7:39 ` 2.6.20-mm2 KAMEZAWA Hiroyuki
2007-02-20 10:06 ` 2.6.20-mm2 Andy Whitcroft
2007-02-20 11:14 ` 2.6.20-mm2 Maciej Rutecki
2007-02-20 11:38 ` 2.6.20-mm2 Maciej Rutecki
2007-02-20 21:23 ` 2.6.20-mm2: possible recursive locking detected (reiserfs-related) Rafael J. Wysocki
2007-02-20 22:48   ` Tilman Schmidt
2007-02-21 10:52 ` [-mm patch] MTD_UBI_DEBUG must depend on SYSFS Adrian Bunk
2007-02-21 11:57 ` [-mm patch] i386 mpparse.c: remove an unused variable Adrian Bunk
2007-02-25 13:15 ` 2.6.20-mm2 Jean Delvare
2007-02-27 20:25   ` 2.6.20-mm2 Andrew Morton
2007-02-28  9:07     ` 2.6.20-mm2 Jean Delvare
2007-02-26 22:23 ` [-mm patch] LGUEST must depend on NET Adrian Bunk
2007-02-26 23:42   ` Rusty Russell
2007-03-01 10:48 ` [-mm patch] arch/i386/xen/: possible cleanups Adrian Bunk
2007-03-01 10:53   ` Jeremy Fitzhardinge
2007-03-01 11:55     ` Adrian Bunk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070220130408.GB566@slug \
    --to=deweerdt@free.fr \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=laurent.riffard@free.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=malattia@linux.it \
    --cc=michal.k.k.piotrowski@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox