If the speed of the slave netdev is more than 1000M,
it is better to use 'G' instead of 'M'.

Signed-off-by: Zhu Yanjun <yanjun....@oracle.com>
---
 drivers/net/bonding/bond_main.c   | 8 ++++++--
 drivers/net/bonding/bond_procfs.c | 6 +++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index af9f0ce..1aad13d 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2147,9 +2147,13 @@ static void bond_miimon_commit(struct bonding *bond)
                                bond_set_backup_slave(slave);
                        }
 
-                       netdev_info(bond->dev, "link status definitely up for 
interface %s, %u Mbps %s duplex\n",
+                       netdev_info(bond->dev, "link status definitely up for 
interface %s, %u%sbps %s duplex\n",
                                    slave->dev->name,
-                                   slave->speed == SPEED_UNKNOWN ? 0 : 
slave->speed,
+                                   slave->speed == SPEED_UNKNOWN ? 0 :
+                                   (slave->speed > 1000 ?
+                                   slave->speed / 1000 : slave->speed),
+                                   slave->speed > 1000 ?
+                                   slave->speed % 1000 ? ".5 G" : " G" : " M",
                                    slave->duplex ? "full" : "half");
 
                        /* notify ad that the link status has changed */
diff --git a/drivers/net/bonding/bond_procfs.c 
b/drivers/net/bonding/bond_procfs.c
index f514fe5..4c31055 100644
--- a/drivers/net/bonding/bond_procfs.c
+++ b/drivers/net/bonding/bond_procfs.c
@@ -173,7 +173,11 @@ static void bond_info_show_slave(struct seq_file *seq,
        if (slave->speed == SPEED_UNKNOWN)
                seq_printf(seq, "Speed: %s\n", "Unknown");
        else
-               seq_printf(seq, "Speed: %d Mbps\n", slave->speed);
+               seq_printf(seq, "Speed: %d%sbps\n",
+                          slave->speed > 1000 ?
+                          slave->speed / 1000 : slave->speed,
+                          slave->speed > 1000 ?
+                          (slave->speed % 1000 ? ".5 G" : " G") : " M");
 
        if (slave->duplex == DUPLEX_UNKNOWN)
                seq_printf(seq, "Duplex: %s\n", "Unknown");
-- 
2.7.4

Reply via email to