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:{__down+421} {default_wake_function+0} {__down_failed+53} {generic_delete_inode+0} {.text.lock.driver+5} {:raw1394:cleanup_raw1394+16} {sys_delete_module+497} {__up_write+514} {sys_munmap+107} {system_call +126} Attached patch fixes the rmmod raw1394 hang. Tested. Parag