On Mon, 2012-02-27 at 14:22 -0500, Neil Horman wrote: > commit e7a51997dad4e17395be1209970e18d2e9305b24 added a skb flush to the > fcoe_rx_list, which ensures that we push any pending frames on the list > through > the per-cpu receive thread. Because of this, its redundant to lock and scan > the > list first, dropping any arriving frames.
Good cleanup, in fact this was not needed before above mentioned commit also. Acked-by: Vasu Dev <[email protected]> > > Signed-off-by: Neil Horman <[email protected]> > CC: Robert Love <[email protected]> > CC: Vasu Dev <[email protected]> > CC: "James E.J. Bottomley" <[email protected]> > --- > drivers/scsi/fcoe/fcoe.c | 22 +++------------------- > 1 files changed, 3 insertions(+), 19 deletions(-) > > diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c > index 787d5a0..dc5597b 100644 > --- a/drivers/scsi/fcoe/fcoe.c > +++ b/drivers/scsi/fcoe/fcoe.c > @@ -2246,31 +2246,14 @@ static int fcoe_link_ok(struct fc_lport *lport) > static void fcoe_percpu_clean(struct fc_lport *lport) > { > struct fcoe_percpu_s *pp; > - struct fcoe_rcv_info *fr; > - struct sk_buff_head *list; > - struct sk_buff *skb, *next; > - struct sk_buff *head; > + struct sk_buff *skb; > unsigned int cpu; > > for_each_possible_cpu(cpu) { > pp = &per_cpu(fcoe_percpu, cpu); > - spin_lock_bh(&pp->fcoe_rx_list.lock); > - list = &pp->fcoe_rx_list; > - head = list->next; > - for (skb = head; skb != (struct sk_buff *)list; > - skb = next) { > - next = skb->next; > - fr = fcoe_dev_from_skb(skb); > - if (fr->fr_dev == lport) { > - __skb_unlink(skb, list); > - kfree_skb(skb); > - } > - } > > - if (!pp->thread || !cpu_online(cpu)) { > - spin_unlock_bh(&pp->fcoe_rx_list.lock); > + if (!pp->thread || !cpu_online(cpu)) > continue; > - } > > skb = dev_alloc_skb(0); > if (!skb) { > @@ -2279,6 +2262,7 @@ static void fcoe_percpu_clean(struct fc_lport *lport) > } > skb->destructor = fcoe_percpu_flush_done; > > + spin_lock_bh(&pp->fcoe_rx_list.lock); > __skb_queue_tail(&pp->fcoe_rx_list, skb); > if (pp->fcoe_rx_list.qlen == 1) > wake_up_process(pp->thread); _______________________________________________ devel mailing list [email protected] https://lists.open-fcoe.org/mailman/listinfo/devel
