[SCSI] fcoe: split out per interface setup
authorChris Leech <christopher.leech@intel.com>
Tue, 25 Aug 2009 21:00:07 +0000 (14:00 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 10 Sep 2009 17:07:35 +0000 (12:07 -0500)
commit54b649f88eb17a29687bece4b8ad7d72d99e2d95
tree0057186411aae1ad53268c127effa65f16f454e0
parent030f4e001f13e0ee80bac1e756013341b1674d10
[SCSI] fcoe: split out per interface setup

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: Chris Leech <christopher.leech@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/fcoe/fcoe.c