lkml.org 
[lkml]   [2005]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] raw1394 : Fix hang on unload
    From
    Date
    I was seeing rmmod getting stuck consistently in D state while removing
    raw1394. Looking at raw1394.c:cleanup_raw1394 - the order of doing
    things seemed incorrect to me after comparing other places in raw1394.c
    which do the same thing but with a different order.

    bash R running task 0 4319 3884 3900
    (NOTLB)
    rmmod D 0000008428792a16 0 4490 3900
    (NOTLB)
    ffff81001cff9dd8 0000000000000082 0000000000000000 0000000100000000
    0000007400000000 ffff8100211c9070 000000000000097b
    ffff81002c8a2800
    ffffffff80397c97 ffff81002b6f9360
    Call Trace:<ffffffff80379d25>{__down+421}
    <ffffffff80133510>{default_wake_function+0}
    <ffffffff8037cd8c>{__down_failed+53}
    <ffffffff801c0e40>{generic_delete_inode+0}
    <ffffffff8029e540>{.text.lock.driver+5}
    <ffffffff885a8260>{:raw1394:cleanup_raw1394+16}
    <ffffffff8015eb31>{sys_delete_module+497}
    <ffffffff8021a692>{__up_write+514}
    <ffffffff80183efb>{sys_munmap+107} <ffffffff8010ecda>{system_call
    +126}

    Attached patch fixes the rmmod raw1394 hang. Tested.

    Parag
    --- drivers/ieee1394/raw1394.c.orig 2005-02-06 14:34:58.000000000 -0500
    +++ drivers/ieee1394/raw1394.c 2005-02-06 14:36:18.000000000 -0500
    @@ -2758,10 +2758,10 @@

    static void __exit cleanup_raw1394(void)
    {
    - hpsb_unregister_protocol(&raw1394_driver);
    cdev_del(&raw1394_cdev);
    devfs_remove(RAW1394_DEVICE_NAME);
    hpsb_unregister_highlevel(&raw1394_highlevel);
    + hpsb_unregister_protocol(&raw1394_driver);
    }

    module_init(init_raw1394);
    \
     
     \ /
      Last update: 2005-03-22 14:10    [W:0.020 / U:61.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site