lkml.org 
[lkml]   [2005]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: problem with suspending linux-2.6.12-rc1
    On Tue, Mar 29, 2005 at 12:20:49AM +0200, Pavel Machek wrote:
    > On Po 28-03-05 10:03:06, Ulrich Lauther wrote:
    > > > > since upgrading from 2.6.11 to 2.6.12-rc1 software suspend doesn't work
    > > > > anymore for me:
    > > > > The last I see when suspending (echo 4 > /proc/acpi/sleep) is a
    > > > > message refering to eth0, then when "writing to swap space"
    > > > > should appear, the system stops.

    This sounds similar to the swsusp hang I started seeing when I upgraded
    from 2.6.11 to 2.6.12-rc1; my touchpad was failing to reinitialize, so
    input was calling hotplug which tried to exec /sbin/hotplug, and the
    exec() blocked because userland was stopped. If you do Sysrq-T and see
    a process with a stack trace like
    wait_for_completion
    call_usermodehelper
    kobject_hotplug
    kobject_del
    class_device_del
    class_device_unregister
    mousedev_disconnect
    input_unregister_device
    then you're seeing the same kind of bug.

    Try the patch below from Dmitry.

    -andy

    ===================================================================

    Input: serio - do not attempt to immediately disconnect port if
    resume failed, let kseriod take care of it. Otherwise we
    may attempt to unregister associated input devices which
    will generate hotplug events which are not handled well
    during swsusp.

    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>


    serio.c | 1 -
    1 files changed, 1 deletion(-)

    Index: dtor/drivers/input/serio/serio.c
    ===================================================================
    --- dtor.orig/drivers/input/serio/serio.c
    +++ dtor/drivers/input/serio/serio.c
    @@ -779,7 +779,6 @@ static int serio_resume(struct device *d
    struct serio *serio = to_serio_port(dev);

    if (!serio->drv || !serio->drv->reconnect || serio->drv->reconnect(serio)) {
    - serio_disconnect_port(serio);
    /*
    * Driver re-probing can take a while, so better let kseriod
    * deal with it.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-04-06 13:31    [W:0.030 / U:124.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site