• Linus Torvalds's avatar
    Revert "parport: daisy: use new parport device model" · a3ac7917
    Linus Torvalds authored
    This reverts commit 1aec4211.
    
    Steven Rostedt reports that it causes a hang at bootup and bisected it
    to this commit.
    
    The troigger is apparently a module alias for "parport_lowlevel" that
    points to "parport_pc", which causes a hang with
    
        modprobe -q -- parport_lowlevel
    
    blocking forever with a backtrace like this:
    
        wait_for_completion_killable+0x1c/0x28
        call_usermodehelper_exec+0xa7/0x108
        __request_module+0x351/0x3d8
        get_lowlevel_driver+0x28/0x41 [parport]
        __parport_register_driver+0x39/0x1f4 [parport]
        daisy_drv_init+0x31/0x4f [parport]
        parport_bus_init+0x5d/0x7b [parport]
        parport_default_proc_register+0x26/0x1000 [parport]
        do_one_initcall+0xc2/0x1e0
        do_init_module+0x50/0x1d4
        load_module+0x1c2e/0x21b3
        sys_init_module+0xef/0x117
    
    Supid says:
     "Due to the new device model daisy driver will now try to find the
      parallel ports while trying to register its driver so that it can bind
      with them. Now, since daisy driver is loaded while parport bus is
      initialising the list of parport is still empty and it tries to load
      the lowlevel driver, which has an alias set to parport_pc, now causes
      a deadlock"
    
    But I don't think the daisy driver should be loaded by the parport
    initialization in the first place, so let's revert the whole change.
    
    If the daisy driver can just initialize separately on its own (like a
    driver should), instead of hooking into the parport init sequence
    directly, this issue probably would go away.
    Reported-and-bisected-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Reported-by: default avatarMichal Kubecek <mkubecek@suse.cz>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a3ac7917
probe.c 7.45 KB