Hi Christopher,

[auto build test ERROR on net/master -- if it's inappropriate base, please 
suggest rules for selecting the more suitable base]

url:    
https://github.com/0day-ci/linux/commits/Christopher-S-Hall/Patchset-enabling-hardware-based-cross-timestamps-for-next-gen-Intel-platforms/20151013-095135
config: x86_64-randconfig-x010-10130227 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers/net/ethernet/intel/e1000e/ptp.c: In function 'e1000e_phc_get_ts':
>> drivers/net/ethernet/intel/e1000e/ptp.c:107:61: error: dereferencing pointer 
>> to incomplete type 'struct correlated_ts'
     struct e1000_adapter *adapter = (struct e1000_adapter *)cts->private;
                                                                ^
   drivers/net/ethernet/intel/e1000e/ptp.c: In function 
'e1000e_phc_getsynctime':
>> drivers/net/ethernet/intel/e1000e/ptp.c:155:23: error: storage size of 
>> 'art_correlated_ts' isn't known
     struct correlated_ts art_correlated_ts;
                          ^
>> drivers/net/ethernet/intel/e1000e/ptp.c:155:23: warning: unused variable 
>> 'art_correlated_ts' [-Wunused-variable]

vim +107 drivers/net/ethernet/intel/e1000e/ptp.c

   101  }
   102  
   103  #define MAX_HW_WAIT_COUNT (3)
   104  
   105  static int e1000e_phc_get_ts(struct correlated_ts *cts)
   106  {
 > 107          struct e1000_adapter *adapter = (struct e1000_adapter 
 > *)cts->private;
   108          struct e1000_hw *hw = &adapter->hw;
   109          int i;
   110          u32 tsync_ctrl;
   111          int ret;
   112  
   113          tsync_ctrl = er32(TSYNCTXCTL);
   114          tsync_ctrl |= E1000_TSYNCTXCTL_START_SYNC |
   115                  E1000_TSYNCTXCTL_MAX_ALLOWED_DLY_MASK;
   116          ew32(TSYNCTXCTL, tsync_ctrl);
   117          for (i = 0; i < MAX_HW_WAIT_COUNT; ++i) {
   118                  udelay(1);
   119                  tsync_ctrl = er32(TSYNCTXCTL);
   120                  if (tsync_ctrl & E1000_TSYNCTXCTL_SYNC_COMP)
   121                          break;
   122          }
   123  
   124          if (i == MAX_HW_WAIT_COUNT) {
   125                  ret = -ETIMEDOUT;
   126          } else {
   127                  ret = 0;
   128                  cts->system_ts = er32(PLTSTMPH);
   129                  cts->system_ts <<= 32;
   130                  cts->system_ts |= er32(PLTSTMPL);
   131                  cts->device_ts = er32(SYSSTMPH);
   132                  cts->device_ts <<= 32;
   133                  cts->device_ts |= er32(SYSSTMPL);
   134          }
   135  
   136          return ret;
   137  }
   138  
   139  /**
   140   * e1000e_phc_getsynctime - Reads the current time from the hardware 
clock and
   141   * correlated system time
   142   * @ptp: ptp clock structure
   143   * @devts: timespec structure to hold the current device time value
   144   * @systs: timespec structure to hold the current system time value
   145   *
   146   * Read device and system (ART) clock simultaneously and return the 
correct
   147   * clock values in ns after converting into a struct timespec.
   148   **/
   149  static int e1000e_phc_getsynctime(struct ptp_clock_info *ptp, u64 *dev,
   150                                    u64 *sys )
   151  {
   152          struct e1000_adapter *adapter = container_of(ptp, struct 
e1000_adapter,
   153                                                       ptp_clock_info);
   154          unsigned long flags;
 > 155          struct correlated_ts art_correlated_ts;
   156          int ret;
   157  
   158          art_correlated_ts.get_ts = e1000e_phc_get_ts;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data

Reply via email to