struct e1000_adapter *adapter = container_of(work, struct e1000_adapter,
                                                     systim_overflow_work.work);
        struct e1000_hw *hw = &adapter->hw;
-       struct timespec ts;
+       struct timespec64 ts;
  
-       adapter->ptp_clock_info.gettime(&adapter->ptp_clock_info, &ts);
+       adapter->ptp_clock_info.gettime64(&adapter->ptp_clock_info, &ts);
  
-       e_dbg("SYSTIM overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec);
 -      e_dbg("SYSTIM overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec);
++      e_dbg("SYSTIM overflow check at %lld.%09lu\n",
++            (long long) ts.tv_sec, ts.tv_nsec);
  
        schedule_delayed_work(&adapter->systim_overflow_work,
                              E1000_SYSTIM_OVERFLOW_PERIOD);
 
  {
        struct igb_adapter *igb =
                container_of(work, struct igb_adapter, ptp_overflow_work.work);
-       struct timespec ts;
+       struct timespec64 ts;
  
-       igb->ptp_caps.gettime(&igb->ptp_caps, &ts);
+       igb->ptp_caps.gettime64(&igb->ptp_caps, &ts);
  
-       pr_debug("igb overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec);
 -      pr_debug("igb overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec);
++      pr_debug("igb overflow check at %lld.%09lu\n",
++               (long long) ts.tv_sec, ts.tv_nsec);
  
        schedule_delayed_work(&igb->ptp_overflow_work,
                              IGB_SYSTIM_OVERFLOW_PERIOD);