]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ibmvnic: Warn unknown speed message only when carrier is present
authorMurilo Fossa Vicentini <muvic@linux.ibm.com>
Mon, 16 Sep 2019 14:50:37 +0000 (11:50 -0300)
committerJakub Kicinski <jakub.kicinski@netronome.com>
Fri, 20 Sep 2019 00:36:49 +0000 (17:36 -0700)
With commit 0655f9943df2 ("net/ibmvnic: Update carrier state after link
state change") we are now able to detect when the carrier is properly
present in the device, so only report an unexpected unknown speed when it
is properly detected. Unknown speed is expected to be seen by the device
in case the backing device has no link detected.

Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
Tested-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
Signed-off-by: Murilo Fossa Vicentini <muvic@linux.ibm.com>
Reviewed-by: Thomas Falcon <tlfalcon@linux.ibm.com>
drivers/net/ethernet/ibm/ibmvnic.c

index 2e5172f61564113ee525a46d562b025acce11f25..3816fff75bb585eae995b172926693d880e09634 100644 (file)
@@ -4312,13 +4312,14 @@ static int handle_query_phys_parms_rsp(union ibmvnic_crq *crq,
 {
        struct net_device *netdev = adapter->netdev;
        int rc;
+       __be32 rspeed = cpu_to_be32(crq->query_phys_parms_rsp.speed);
 
        rc = crq->query_phys_parms_rsp.rc.code;
        if (rc) {
                netdev_err(netdev, "Error %d in QUERY_PHYS_PARMS\n", rc);
                return rc;
        }
-       switch (cpu_to_be32(crq->query_phys_parms_rsp.speed)) {
+       switch (rspeed) {
        case IBMVNIC_10MBPS:
                adapter->speed = SPEED_10;
                break;
@@ -4344,8 +4345,8 @@ static int handle_query_phys_parms_rsp(union ibmvnic_crq *crq,
                adapter->speed = SPEED_100000;
                break;
        default:
-               netdev_warn(netdev, "Unknown speed 0x%08x\n",
-                           cpu_to_be32(crq->query_phys_parms_rsp.speed));
+               if (netif_carrier_ok(netdev))
+                       netdev_warn(netdev, "Unknown speed 0x%08x\n", rspeed);
                adapter->speed = SPEED_UNKNOWN;
        }
        if (crq->query_phys_parms_rsp.flags1 & IBMVNIC_FULL_DUPLEX)