Skip to content

Commit

Permalink
net/ibmvnic: Update carrier state after link state change
Browse files Browse the repository at this point in the history
Only set the device carrier state to on after receiving an up link
state indication from the underlying adapter. Likewise, if a down
link indication is receieved, update the carrier state accordingly.
This fix ensures that accurate carrier state is reported by the driver
following a link state update by the underlying adapter.

Signed-off-by: Thomas Falcon <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
tlfalcon authored and davem330 committed May 10, 2019
1 parent 62740e9 commit 0655f99
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions drivers/net/ethernet/ibm/ibmvnic.c
Original file line number Diff line number Diff line change
Expand Up @@ -1111,7 +1111,6 @@ static int ibmvnic_open(struct net_device *netdev)
}

rc = __ibmvnic_open(netdev);
netif_carrier_on(netdev);

return rc;
}
Expand Down Expand Up @@ -1864,8 +1863,6 @@ static int do_reset(struct ibmvnic_adapter *adapter,
adapter->reset_reason != VNIC_RESET_CHANGE_PARAM)
call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev);

netif_carrier_on(netdev);

return 0;
}

Expand Down Expand Up @@ -1935,8 +1932,6 @@ static int do_hard_reset(struct ibmvnic_adapter *adapter,
return 0;
}

netif_carrier_on(netdev);

return 0;
}

Expand Down Expand Up @@ -4480,6 +4475,10 @@ static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
crq->link_state_indication.phys_link_state;
adapter->logical_link_state =
crq->link_state_indication.logical_link_state;
if (adapter->phys_link_state && adapter->logical_link_state)
netif_carrier_on(netdev);
else
netif_carrier_off(netdev);
break;
case CHANGE_MAC_ADDR_RSP:
netdev_dbg(netdev, "Got MAC address change Response\n");
Expand Down

0 comments on commit 0655f99

Please sign in to comment.