diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igc')
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_ptp.c | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/drivers/net/ethernet/intel/igc/igc_ptp.c b/drivers/net/ethernet/intel/igc/igc_ptp.c index c34734d432e0..4e10ced736db 100644 --- a/drivers/net/ethernet/intel/igc/igc_ptp.c +++ b/drivers/net/ethernet/intel/igc/igc_ptp.c @@ -417,10 +417,12 @@ static int igc_ptp_verify_pin(struct ptp_clock_info *ptp, unsigned int pin,   *   * We need to convert the system time value stored in the RX/TXSTMP registers   * into a hwtstamp which can be used by the upper level timestamping functions. + * + * Returns 0 on success.   **/ -static void igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter, -				       struct skb_shared_hwtstamps *hwtstamps, -				       u64 systim) +static int igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter, +				      struct skb_shared_hwtstamps *hwtstamps, +				      u64 systim)  {  	switch (adapter->hw.mac.type) {  	case igc_i225: @@ -430,8 +432,9 @@ static void igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter,  						systim & 0xFFFFFFFF);  		break;  	default: -		break; +		return -EINVAL;  	} +	return 0;  }  /** @@ -652,7 +655,8 @@ static void igc_ptp_tx_hwtstamp(struct igc_adapter *adapter)  	regval = rd32(IGC_TXSTMPL);  	regval |= (u64)rd32(IGC_TXSTMPH) << 32; -	igc_ptp_systim_to_hwtstamp(adapter, &shhwtstamps, regval); +	if (igc_ptp_systim_to_hwtstamp(adapter, &shhwtstamps, regval)) +		return;  	switch (adapter->link_speed) {  	case SPEED_10: |