From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: Theodore Tso <tytso@mit.edu>
Cc: Andrew Price <andy@andrewprice.me.uk>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
linux-kernel@vger.kernel.org
Subject: Re: BUG: using rootfstype=ext4 causes oops
Date: Thu, 16 Apr 2009 18:02:21 +0200 [thread overview]
Message-ID: <200904161802.21302.bzolnier@gmail.com> (raw)
In-Reply-To: <20090416145357.GM21586@mit.edu>
On Thursday 16 April 2009 16:53:57 Theodore Tso wrote:
> On Thu, Apr 16, 2009 at 11:47:58AM +0100, Andrew Price wrote:
> > On Thu, Apr 16, 2009 at 12:19:45AM -0400, Theodore Tso wrote:
> > > The stack traces are in the IDE interrupt
> > > handler, so it seems surprising that ext4 would trigger it but ext3
> > > would not. Have you tried ext4 on any earlier kernel?
> >
> > It happened with linux-2.6.git kernels earlier in the week when I
> > started trying rootfstype=ext4 but I haven't tried properly bisecting it
> > yet.
> >
> > > The main difference I can think of is that ext4 enables barriers by
> > > default; maybe that's the case of the IDE breakage? Can you try
> > > booting with the boot command option "rootfsflags=barrier=0" as well
> > > as "rootfstype=ext4", and see if that helps?
> >
> > I added rootflags=barrier=0 ...
> >
> > ... and it doesn't panic.
> >
> > > If so, it's a bug in the IDE code in that it's not handling barriers
> > > correctly.
> >
> > Bingo.
Freeing non-slab objects is bad.
Andrew, does this patch help?
---
drivers/ide/ide-io.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
Index: b/drivers/ide/ide-io.c
===================================================================
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -102,11 +102,14 @@ void ide_complete_cmd(ide_drive_t *drive
drive->dev_flags |= IDE_DFLAG_PARKED;
}
- if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE)
- memcpy(rq->special, cmd, sizeof(*cmd));
+ if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
+ struct ide_cmd *orig_cmd = rq->special;
- if (cmd->tf_flags & IDE_TFLAG_DYN)
- kfree(cmd);
+ if (cmd->tf_flags & IDE_TFLAG_DYN)
+ kfree(orig_cmd);
+ else
+ memcpy(orig_cmd, cmd, sizeof(*cmd));
+ }
}
/* obsolete, blk_rq_bytes() should be used instead */
next prev parent reply other threads:[~2009-04-16 15:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-15 20:59 BUG: using rootfstype=ext4 causes oops Andrew Price
2009-04-16 4:19 ` Theodore Tso
2009-04-16 10:47 ` Andrew Price
2009-04-16 14:53 ` Theodore Tso
2009-04-16 16:02 ` Bartlomiej Zolnierkiewicz [this message]
2009-04-16 17:05 ` Andrew Price
2009-04-16 19:22 ` Bartlomiej Zolnierkiewicz
2009-04-16 16:38 ` Andrew Price
2009-04-16 16:55 ` Theodore Tso
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=200904161802.21302.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=andy@andrewprice.me.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
--cc=tytso@mit.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.