extern void ixgbe_ptp_stop(struct ixgbe_adapter *adapter);
 extern void ixgbe_ptp_overflow_check(struct ixgbe_adapter *adapter);
 extern void ixgbe_ptp_rx_hang(struct ixgbe_adapter *adapter);
-extern void ixgbe_ptp_rx_hwtstamp(struct ixgbe_ring *rx_ring,
-                                 union ixgbe_adv_rx_desc *rx_desc,
-                                 struct sk_buff *skb);
+extern void __ixgbe_ptp_rx_hwtstamp(struct ixgbe_q_vector *q_vector,
+                                   struct sk_buff *skb);
+static inline void ixgbe_ptp_rx_hwtstamp(struct ixgbe_ring *rx_ring,
+                                        union ixgbe_adv_rx_desc *rx_desc,
+                                        struct sk_buff *skb)
+{
+       if (unlikely(!ixgbe_test_staterr(rx_desc, IXGBE_RXDADV_STAT_TS)))
+               return;
+
+       __ixgbe_ptp_rx_hwtstamp(rx_ring->q_vector, skb);
+
+       /*
+        * Update the last_rx_timestamp timer in order to enable watchdog check
+        * for error case of latched timestamp on a dropped packet.
+        */
+       rx_ring->last_rx_timestamp = jiffies;
+}
+
 extern int ixgbe_ptp_hwtstamp_ioctl(struct ixgbe_adapter *adapter,
                                    struct ifreq *ifr, int cmd);
 extern void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter);
 
 }
 
 /**
- * ixgbe_ptp_rx_hwtstamp - utility function which checks for RX time stamp
+ * __ixgbe_ptp_rx_hwtstamp - utility function which checks for RX time stamp
  * @q_vector: structure containing interrupt and ring information
- * @rx_desc: the rx descriptor
  * @skb: particular skb to send timestamp with
  *
  * if the timestamp is valid, we convert it into the timecounter ns
  * value, then store that result into the shhwtstamps structure which
  * is passed up the network stack
  */
-void ixgbe_ptp_rx_hwtstamp(struct ixgbe_ring *rx_ring,
-                          union ixgbe_adv_rx_desc *rx_desc,
-                          struct sk_buff *skb)
+void __ixgbe_ptp_rx_hwtstamp(struct ixgbe_q_vector *q_vector,
+                            struct sk_buff *skb)
 {
        struct ixgbe_adapter *adapter;
        struct ixgbe_hw *hw;
        unsigned long flags;
 
        /* we cannot process timestamps on a ring without a q_vector */
-       if (!rx_ring->q_vector || !rx_ring->q_vector->adapter)
+       if (!q_vector || !q_vector->adapter)
                return;
 
-       adapter = rx_ring->q_vector->adapter;
+       adapter = q_vector->adapter;
        hw = &adapter->hw;
 
-       if (unlikely(!ixgbe_test_staterr(rx_desc, IXGBE_RXDADV_STAT_TS)))
-               return;
-
        /*
         * Read the tsyncrxctl register afterwards in order to prevent taking an
         * I/O hit on every packet.
        if (!(tsyncrxctl & IXGBE_TSYNCRXCTL_VALID))
                return;
 
-       /*
-        * Update the last_rx_timestamp timer in order to enable watchdog check
-        * for error case of latched timestamp on a dropped packet.
-        */
-       rx_ring->last_rx_timestamp = jiffies;
-
        regval |= (u64)IXGBE_READ_REG(hw, IXGBE_RXSTMPL);
        regval |= (u64)IXGBE_READ_REG(hw, IXGBE_RXSTMPH) << 32;