• Chris Leech's avatar
    [SCSI] fcoe: split out per interface setup · 54b649f8
    Chris Leech authored
    fcoe_netdev_config() is called during initialization of a libfc instance.
    Much of what was there only needs to be done once for each net_device.
    The same goes for the corresponding cleanup.
    
    The FIP controller initialization is moved to interface creation time.
    Otherwise it will keep getting re-initialized for every VN_Port once NPIV is
    enabled.
    
    fcoe_if_destroy() has some reordering to deal with the changes.  Receives are
    not stopped until after fcoe_interface_put() is called, but transmits must be
    stopped before.  So there is some care to stop libfc transmits and the
    transmit backlog timer, then call fcoe_interface_put which will stop receives
    and cleanup the FIP controller, then the receive queues can be cleaned and the
    port freed.
    Signed-off-by: default avatarChris Leech <christopher.leech@intel.com>
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    54b649f8
fcoe.c 50.3 KB