aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/fcoe/fcoe.c
diff options
context:
space:
mode:
authorJoe Eykholt <jeykholt@cisco.com>2009-07-29 20:04:17 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-08-22 18:52:04 -0400
commitf161fb72104c7addac3d404a1ff543b2491c1426 (patch)
tree8cee890fee11417429fb2cbd69410f04019d51b6 /drivers/scsi/fcoe/fcoe.c
parent7f74549ff630ad444b0b6bbcabf426f781910906 (diff)
[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>
Diffstat (limited to 'drivers/scsi/fcoe/fcoe.c')
-rw-r--r--drivers/scsi/fcoe/fcoe.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index 81601269f4cd..14a4017a1535 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -466,6 +466,9 @@ static int fcoe_if_destroy(struct net_device *netdev)
466 /* tear-down the FCoE controller */ 466 /* tear-down the FCoE controller */
467 fcoe_ctlr_destroy(&fc->ctlr); 467 fcoe_ctlr_destroy(&fc->ctlr);
468 468
469 /* Free queued packets for the per-CPU receive threads */
470 fcoe_percpu_clean(lp);
471
469 /* Cleanup the fc_lport */ 472 /* Cleanup the fc_lport */
470 fc_lport_destroy(lp); 473 fc_lport_destroy(lp);
471 fc_fcp_destroy(lp); 474 fc_fcp_destroy(lp);
@@ -478,9 +481,6 @@ static int fcoe_if_destroy(struct net_device *netdev)
478 if (lp->emp) 481 if (lp->emp)
479 fc_exch_mgr_free(lp->emp); 482 fc_exch_mgr_free(lp->emp);
480 483
481 /* Free the per-CPU receive threads */
482 fcoe_percpu_clean(lp);
483
484 /* Free existing skbs */ 484 /* Free existing skbs */
485 fcoe_clean_pending_queue(lp); 485 fcoe_clean_pending_queue(lp);
486 486