• Tejun Heo's avatar
    libata: port and host should be stopped before hardware resources are released · 32ebbc0c
    Tejun Heo authored
    Port / host stop calls used to be made from ata_host_release() which
    is called after all hardware resources acquired after host allocation
    are released.  This is wrong as port and host stop routines often
    access the hardware.
    
    Add separate devres for port / host stop which is invoked right after
    IRQ is released but with all other hardware resources intact.  The
    devres is added iff ->host_stop and/or ->port_stop exist.
    
    This problem has been spotted by Mark Lord.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Cc: Mark Lord <liml@rtr.ca>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    32ebbc0c
libata-core.c 193 KB