Do not reset fip selection time for every advertisement
in fcoe_ctlr_recv_adv() but set it only once for the first
validated FCF. Otherwise FCF selection won't happen when the
advertisements consistently arrive with sub FCOE_CTLR_START_DELAY
periodicity.

Signed-off-by: Usha Ketineni <[email protected]>
Tested-by: Narendra K <[email protected]>
---
 drivers/scsi/fcoe/fcoe_ctlr.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index d68d572..0c85ef6 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -1079,7 +1079,8 @@ static void fcoe_ctlr_recv_adv(struct fcoe_ctlr *fip, 
struct sk_buff *skb)
         * If this is the first validated FCF, note the time and
         * set a timer to trigger selection.
         */
-       if (mtu_valid && !fip->sel_fcf && fcoe_ctlr_fcf_usable(fcf)) {
+       if (mtu_valid && !fip->sel_fcf && !fip->sel_time &&
+           fcoe_ctlr_fcf_usable(fcf)) {
                fip->sel_time = jiffies +
                        msecs_to_jiffies(FCOE_CTLR_START_DELAY);
                if (!timer_pending(&fip->timer) ||

_______________________________________________
fcoe-devel mailing list
[email protected]
http://lists.open-fcoe.org/mailman/listinfo/fcoe-devel

Reply via email to