• Tejun Heo's avatar
    [PATCH] libata: add host_set->next for legacy two host_sets case, take #3 · f0eb62b8
    Tejun Heo authored
    For a legacy ATA controller, libata registers two separate host sets.
    There was no connection between the two hosts making it impossible to
    traverse all ports related to the controller.  This patch adds
    host_set->next which points to the second host_set and makes
    ata_pci_remove_one() remove all associated host_sets.
    
    * On device removal, all ports hanging off the device are properly
      detached.  Prior to this patch, ports on the first host_set weren't
      detached casuing oops on driver unloading.
    
    * On device removal, both host_sets are properly freed
    
    This will also be used by new power management code to suspend and
    resume all ports of a controller.  host_set/port representation will
    be improved to handle legacy controllers better and this host_set
    linking will go away with it.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    f0eb62b8
libata-core.c 142 KB