bnx2x: Report the maximal available BW as link speed
authorEilon Greenstein <eilong@broadcom.com>
Thu, 15 Oct 2009 07:19:05 +0000 (00:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Oct 2009 07:19:05 +0000 (00:19 -0700)
The device is limited to the maximal BW allocation, so it should be displayed as
the link speed to notify the user.

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x_main.c

index 42cd957c668bc12d756c91a31ff29b27bcf7fb12..ba131f46319892c870e18655f594b4b051abb205 100644 (file)
@@ -2163,11 +2163,23 @@ static void bnx2x_link_report(struct bnx2x *bp)
        }
 
        if (bp->link_vars.link_up) {
+               u16 line_speed;
+
                if (bp->state == BNX2X_STATE_OPEN)
                        netif_carrier_on(bp->dev);
                printk(KERN_INFO PFX "%s NIC Link is Up, ", bp->dev->name);
 
-               printk("%d Mbps ", bp->link_vars.line_speed);
+               line_speed = bp->link_vars.line_speed;
+               if (IS_E1HMF(bp)) {
+                       u16 vn_max_rate;
+
+                       vn_max_rate =
+                               ((bp->mf_config & FUNC_MF_CFG_MAX_BW_MASK) >>
+                                FUNC_MF_CFG_MAX_BW_SHIFT) * 100;
+                       if (vn_max_rate < line_speed)
+                               line_speed = vn_max_rate;
+               }
+               printk("%d Mbps ", line_speed);
 
                if (bp->link_vars.duplex == DUPLEX_FULL)
                        printk("full duplex");