[SCSI] fcoe: stop delivery of received frames before doing lport_destroy()

To be more sure that no more input arrives at the local port as
it is being destroyed, clean the queues in the per-cpu receive
threads.

Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
Joe Eykholt 2009-07-29 17:04:17 -07:00 committed by James Bottomley
parent 7f74549ff6
commit f161fb7210

View File

@ -466,6 +466,9 @@ static int fcoe_if_destroy(struct net_device *netdev)
/* tear-down the FCoE controller */
fcoe_ctlr_destroy(&fc->ctlr);
/* Free queued packets for the per-CPU receive threads */
fcoe_percpu_clean(lp);
/* Cleanup the fc_lport */
fc_lport_destroy(lp);
fc_fcp_destroy(lp);
@ -478,9 +481,6 @@ static int fcoe_if_destroy(struct net_device *netdev)
if (lp->emp)
fc_exch_mgr_free(lp->emp);
/* Free the per-CPU receive threads */
fcoe_percpu_clean(lp);
/* Free existing skbs */
fcoe_clean_pending_queue(lp);