Bug 13833

Summary: Kernel Oops when trying to suspend with ubifs mounted on block2mtd mtd device
Product: Drivers Reporter: Rafael J. Wysocki (rjw)
Component: Flash/Memory Technology DevicesAssignee: David Woodhouse (dwmw2)
Status: CLOSED CODE_FIX    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.31-rc1 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216, 13615    

Description Rafael J. Wysocki 2009-07-26 20:40:39 UTC
Subject    : Kernel Oops when trying to suspend with ubifs mounted on block2mtd mtd device on 2.3.31-rc2
Submitter  : Tobias Diedrich <ranma@tdiedrich.de>
Date       : 2009-07-15 14:20
References : http://marc.info/?l=linux-kernel&m=124766049207807&w=4
Notify-Also : David Brownell <david-b@pacbell.net>

This entry is being used for tracking a regression from 2.6.29.  Please don't
close it until the problem is fixed in the mainline.

Caused by:

commit 15bce40cb3133bcc07d548013df97e4653d363c1
Author: David Woodhouse <David.Woodhouse@intel.com>
Date:   Sun Apr 5 07:40:58 2009 -0700

    [MTD] Restore suspend/resume support for mtd devices

    This is intended to suspend/resume the _chip_, while we leave board
    drivers to handle their own suspend/resume for the controller.

    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>

First-Bad-Commit : 15bce40cb3133bcc07d548013df97e4653d363c1
Comment 1 Rafael J. Wysocki 2009-07-26 21:18:06 UTC
References : http://marc.info/?l=linux-kernel&m=124704927819769&w=4
Notify-Also : Pavel Machek <pavel@ucw.cz>
Notify-Also : Eric Miao <eric.y.miao@gmail.com>
Comment 2 Rafael J. Wysocki 2009-07-28 21:08:32 UTC
On Tuesday 28 July 2009, saeed bishara wrote:
> Hi
> This patch crashes my system, when issue suspend to ram, the kernel
> crashes mtd_cls_suspend when the mtd device is mtdXro, the problem is
> the the mtdXro devices are of mtd_class, and the suspend function of
> this class assumes that the "dev" is contained in mtd_into structure
> (dev_to_mtd(dev)), but, the mtdXro device created using
> device_create() so the dev is not contained in valid mtd_info
> structure.
> 
> saeed
> 
> 
> On Tue, Jul 28, 2009 at 1:43 AM, Rafael J. Wysocki<rjw@sisk.pl> wrote:
> > On Monday 27 July 2009, Tobias Diedrich wrote:
> >> Rafael J. Wysocki wrote:
> >> > This message has been generated automatically as a part of a report
> >> > of recent regressions.
> >> >
> >> > The following bug entry is on the current list of known regressions
> >> > from 2.6.30.  Please verify if it still should be listed and let me know
> >> > (either way).
> >>
> >>
> >> Well, the patch reverting the commit still applies to 2.6.31-rc4, so
> >> I assume the issue persists,but I have not tried an unpatched
> >> 2.6.31-rc4.
Comment 3 Rafael J. Wysocki 2009-08-02 20:35:49 UTC
On Thursday 30 July 2009, Pavel Machek wrote:
> Hi!
> 
> > This message has been generated automatically as a part of a report
> > of recent regressions.
> > 
> > The following bug entry is on the current list of known regressions
> > from 2.6.30.  Please verify if it still should be listed and let me know
> > (either way).
> 
> I believe I'm experiencing duplicate of this on zaurus.
> 
> I'm using (attached patch) to work around.
> 
> Legally speaking:
> 
> Signed-off-by: Pavel Machek <pavel@ucw.cz>
>                                                                       Pavel
> 
> 
> diff -ur mtd.ofic/mtdcore.c mtd/mtdcore.c
> --- mtd.ofic/mtdcore.c        2009-07-15 01:42:06.000000000 +0200
> +++ mtd/mtdcore.c     2009-07-21 17:55:45.000000000 +0200
> @@ -29,8 +29,8 @@
>  static struct class mtd_class = {
>       .name = "mtd",
>       .owner = THIS_MODULE,
> -     .suspend = mtd_cls_suspend,
> -     .resume = mtd_cls_resume,
> +     //      .suspend = mtd_cls_suspend,
> +     //.resume = mtd_cls_resume,
>  };
>  
>  /* These are exported solely for the purpose of mtd_blkdevs.c. You
> Only in mtd: mtdcore.c~
> Binary files mtd.ofic/mtdcore.o and mtd/mtdcore.o differ
Comment 4 David Woodhouse 2009-08-03 13:18:10 UTC
Please could you confirm that this is fixed by
http://git.infradead.org/mtd-2.6.git?a=commitdiff;h=6afc4fdb3e94ba60cd566cb878b60c6c01979277
Comment 5 Rafael J. Wysocki 2009-08-03 14:38:43 UTC
On Monday 03 August 2009, Tobias Diedrich wrote:
> Revert patch still aplies to rc5, so it seems to be unfixed so far.
> 
> Rafael J. Wysocki wrote:
> > Bug-Entry   : http://bugzilla.kernel.org/show_bug.cgi?id=13833
> > Subject             : Kernel Oops when trying to suspend with ubifs mounted
> on block2mtd mtd device
> > Submitter   : Tobias Diedrich <ranma@tdiedrich.de>
> > Date                : 2009-07-15 14:20 (19 days old)
Comment 6 David Woodhouse 2009-08-03 14:45:20 UTC
The above-referenced commit isn't in -rc5. I was asking for confirmation before I ask Linus to pull.
Comment 7 David Woodhouse 2009-08-10 08:28:59 UTC
Fixed by http://git.kernel.org/linus/6afc4fdb3e94ba60cd566cb878b60c6c01979277
Comment 8 Rafael J. Wysocki 2009-08-10 13:52:35 UTC
On Monday 10 August 2009, David Woodhouse wrote:
> On Sun, 2009-08-09 at 13:44 -0700, Rafael J. Wysocki wrote:
> > This message has been generated automatically as a part of a report
> > of recent regressions.
> > 
> > The following bug entry is on the current list of known regressions
> > from 2.6.30.  Please verify if it still should be listed and let me know
> > (either way).
> > 
> > 
> > Bug-Entry   : http://bugzilla.kernel.org/show_bug.cgi?id=13833
> > Subject             : Kernel Oops when trying to suspend with ubifs mounted
> on block2mtd mtd device
> > Submitter   : Tobias Diedrich <ranma@tdiedrich.de>
> > Date                : 2009-07-15 14:20 (26 days old)
> 
> 
> This is now fixed.