lkml.org 
[lkml]   [2009]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [linux-pm] [2.6.30-rc1-git2 regressions] Hibernation broken and (minor but annoying) audio problem
    Date
    [Sorry for having to switch the From address, my MTA has just decided to break.]

    On Friday 10 April 2009, Linus Torvalds wrote:
    >
    > On Fri, 10 Apr 2009, Rafael J. Wysocki wrote:
    > >
    > > I've just verified that the resume-after-hibernation issue goes away after
    > > reverting commit 9710794383ee5008d67f1a6613a4717bf6de47bc
    > > (async: remove the temporary (2.6.29) "async is off by default" code) , so it
    > > is async-related.
    >
    > Arjan? Clearly all the necessary fixes weren't found..
    >
    > There _is_ a module loading problem wrt initmem - I think you found that
    > and we added a hack for it for the ACPI battery driver. I wonder if we're
    > hitting a similar issue now with module discovery: modules that use
    > "async_schedule()" to do their discovery asynchronously are now not
    > necessarily fully "done" when the module is loaded.
    >
    > And so, anything that expected the devices to be available after module
    > load (like they used to) would be screwed.
    >
    > IOW, maybe something like the totally untested patch appended here (that
    > should also allow us to make the ACPI battery code to go back to using
    > __init).

    I tested it and it worked.

    > As usual, I'm not using modules, so what do I know.
    >
    > > The audio issue still remains after the revert, so it is really different.
    >
    > Ok, probably something from Takashi..

    This one is only reproducible in one out of three attempts on the average.
    I tried to bisect, but it went to nowhere.

    Thanks,
    Rafael


    > ---
    > kernel/module.c | 3 +++
    > 1 files changed, 3 insertions(+), 0 deletions(-)
    >
    > diff --git a/kernel/module.c b/kernel/module.c
    > index 05f014e..e797812 100644
    > --- a/kernel/module.c
    > +++ b/kernel/module.c
    > @@ -2388,6 +2388,9 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
    > blocking_notifier_call_chain(&module_notify_list,
    > MODULE_STATE_LIVE, mod);
    >
    > + /* We need to finish all async code before the module init sequence is done */
    > + async_synchronize_full();
    > +
    > mutex_lock(&module_mutex);
    > /* Drop initial reference. */
    > module_put(mod);
    >


    \
     
     \ /
      Last update: 2009-04-11 02:09    [W:0.028 / U:97.412 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site