Allow adapters to run FCoE traffic regardless of the
PAUSE support.

We may need a long-term solution to this problem since
FCoE does "want" some level of PAUSE to run, but for
now I think it's too restrictive with this check.

Signed-off-by: Robert Love <[EMAIL PROTECTED]>
---

 drivers/scsi/fcoe/fcoe_if.c |   15 ++++-----------
 1 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/scsi/fcoe/fcoe_if.c b/drivers/scsi/fcoe/fcoe_if.c
index 01ad482..a892c82 100644
--- a/drivers/scsi/fcoe/fcoe_if.c
+++ b/drivers/scsi/fcoe/fcoe_if.c
@@ -217,20 +217,21 @@ int fcoe_destroy_interface(const char *ifname)
 /*
  * Return zero if link is OK for use by FCoE.
  * Any permanently-disqualifying conditions have been previously checked.
- * This checks pause settings, which can change with link.
  * This also updates the speed setting, which may change with link for 
100/1000.
+ *
+ * This function should probably be checking for PAUSE support at some point
+ * in the future. Currently Per-priority-pause is not determinable using
+ * ethtool, so we shouldn't be restrictive until that problem is resolved.
  */
 int fcoe_link_ok(struct fc_lport *lp)
 {
        struct fcoe_softc *fc = (struct fcoe_softc *)lp->drv_priv;
        struct net_device *dev = fc->real_dev;
-       struct ethtool_pauseparam pause = { ETHTOOL_GPAUSEPARAM };
        struct ethtool_cmd ecmd = { ETHTOOL_GSET };
        int rc = 0;
 
        if ((dev->flags & IFF_UP) && netif_carrier_ok(dev)) {
                dev = fc->phys_dev;
-               dev->ethtool_ops->get_pauseparam(dev, &pause);
                if (dev->ethtool_ops->get_settings) {
                        dev->ethtool_ops->get_settings(dev, &ecmd);
                        lp->link_supported_speeds &=
@@ -245,15 +246,7 @@ int fcoe_link_ok(struct fc_lport *lp)
                                lp->link_speed = FC_PORTSPEED_1GBIT;
                        if (ecmd.speed == SPEED_10000)
                                lp->link_speed = FC_PORTSPEED_10GBIT;
-
-                       /*
-                        * for 10 G (and faster), ignore autoneg requirement.
-                        */
-                       if (ecmd.speed >= SPEED_10000)
-                               pause.autoneg = 1;
                }
-               if (!pause.autoneg || !pause.tx_pause || !pause.rx_pause)
-                       rc = -1;
        } else
                rc = -1;
 

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

Reply via email to