Hi ChinmayVS,

[auto build test ERROR on staging/staging-testing]
[also build test ERROR on v4.9-rc7 next-20161202]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Chinmay-VS/staging-greybus-Fix-macro-definition/20161204-035614
config: i386-randconfig-s0-201649 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

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

>> drivers/staging/greybus/loopback.c:180:1: error: expected identifier or '(' 
>> before 'do'
    do {        \
    ^
>> drivers/staging/greybus/loopback.c:288:1: note: in expansion of macro 
>> 'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(latency);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:184:3: error: expected identifier or '(' 
>> before 'while'
    } while (0)
      ^
>> drivers/staging/greybus/loopback.c:288:1: note: in expansion of macro 
>> 'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(latency);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:180:1: error: expected identifier or '(' 
>> before 'do'
    do {        \
    ^
   drivers/staging/greybus/loopback.c:290:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(requests_per_second);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:184:3: error: expected identifier or '(' 
>> before 'while'
    } while (0)
      ^
   drivers/staging/greybus/loopback.c:290:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(requests_per_second);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:180:1: error: expected identifier or '(' 
>> before 'do'
    do {        \
    ^
   drivers/staging/greybus/loopback.c:292:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(throughput);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:184:3: error: expected identifier or '(' 
>> before 'while'
    } while (0)
      ^
   drivers/staging/greybus/loopback.c:292:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(throughput);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:180:1: error: expected identifier or '(' 
>> before 'do'
    do {        \
    ^
   drivers/staging/greybus/loopback.c:294:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(apbridge_unipro_latency);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:184:3: error: expected identifier or '(' 
>> before 'while'
    } while (0)
      ^
   drivers/staging/greybus/loopback.c:294:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(apbridge_unipro_latency);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:180:1: error: expected identifier or '(' 
>> before 'do'
    do {        \
    ^
   drivers/staging/greybus/loopback.c:296:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(gbphy_firmware_latency);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:184:3: error: expected identifier or '(' 
>> before 'while'
    } while (0)
      ^
   drivers/staging/greybus/loopback.c:296:1: note: in expansion of macro 
'gb_loopback_stats_attrs'
    gb_loopback_stats_attrs(gbphy_firmware_latency);
    ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:334:3: error: 'dev_attr_latency_min' 
>> undeclared here (not in a function)
     &dev_attr_latency_min.attr,
      ^~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:335:3: error: 'dev_attr_latency_max' 
>> undeclared here (not in a function)
     &dev_attr_latency_max.attr,
      ^~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:336:3: error: 'dev_attr_latency_avg' 
>> undeclared here (not in a function)
     &dev_attr_latency_avg.attr,
      ^~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:337:3: error: 
>> 'dev_attr_requests_per_second_min' undeclared here (not in a function)
     &dev_attr_requests_per_second_min.attr,
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:338:3: error: 
>> 'dev_attr_requests_per_second_max' undeclared here (not in a function)
     &dev_attr_requests_per_second_max.attr,
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:339:3: error: 
>> 'dev_attr_requests_per_second_avg' undeclared here (not in a function)
     &dev_attr_requests_per_second_avg.attr,
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:340:3: error: 'dev_attr_throughput_min' 
>> undeclared here (not in a function)
     &dev_attr_throughput_min.attr,
      ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/greybus/loopback.c:341:3: error: 'dev_attr_throughput_max' 
>> undeclared here (not in a function)
     &dev_attr_throughput_max.attr,
      ^~~~~~~~~~~~~~~~~~~~~~~

vim +180 drivers/staging/greybus/loopback.c

   174          do_div(rem, count);                                             
\
   175          return sprintf(buf, "%llu.%06u\n", avg, (u32)rem);              
\
   176  }                                                                       
\
   177  static DEVICE_ATTR_RO(name##_avg)
   178  
   179  #define gb_loopback_stats_attrs(field)                          \
 > 180  do {                                                            \
   181          gb_loopback_ro_stats_attr(field, min, u);               \
   182          gb_loopback_ro_stats_attr(field, max, u);               \
   183          gb_loopback_ro_avg_attr(field)                          \
 > 184  } while (0)
   185  
   186  #define gb_loopback_attr(field, type)                                   
\
   187  static ssize_t field##_show(struct device *dev,                         
\
   188                              struct device_attribute *attr,              
\
   189                              char *buf)                                  
\
   190  {                                                                       
\
   191          struct gb_loopback *gb = dev_get_drvdata(dev);                  
\
   192          return sprintf(buf, "%"#type"\n", gb->field);                   
\
   193  }                                                                       
\
   194  static ssize_t field##_store(struct device *dev,                        
\
   195                              struct device_attribute *attr,              
\
   196                              const char *buf,                            
\
   197                              size_t len)                                 
\
   198  {                                                                       
\
   199          int ret;                                                        
\
   200          struct gb_loopback *gb = dev_get_drvdata(dev);                  
\
   201          mutex_lock(&gb->mutex);                                         
\
   202          ret = sscanf(buf, "%"#type, &gb->field);                        
\
   203          if (ret != 1)                                                   
\
   204                  len = -EINVAL;                                          
\
   205          else                                                            
\
   206                  gb_loopback_check_attr(gb, bundle);                     
\
   207          mutex_unlock(&gb->mutex);                                       
\
   208          return len;                                                     
\
   209  }                                                                       
\
   210  static DEVICE_ATTR_RW(field)
   211  
   212  #define gb_dev_loopback_ro_attr(field, conn)                            
\
   213  static ssize_t field##_show(struct device *dev,         \
   214                              struct device_attribute *attr,              
\
   215                              char *buf)                                  
\
   216  {                                                                       
\
   217          struct gb_loopback *gb = dev_get_drvdata(dev);                  
\
   218          return sprintf(buf, "%u\n", gb->field);                         
\
   219  }                                                                       
\
   220  static DEVICE_ATTR_RO(field)
   221  
   222  #define gb_dev_loopback_rw_attr(field, type)                            
\
   223  static ssize_t field##_show(struct device *dev,                         
\
   224                              struct device_attribute *attr,              
\
   225                              char *buf)                                  
\
   226  {                                                                       
\
   227          struct gb_loopback *gb = dev_get_drvdata(dev);                  
\
   228          return sprintf(buf, "%"#type"\n", gb->field);                   
\
   229  }                                                                       
\
   230  static ssize_t field##_store(struct device *dev,                        
\
   231                              struct device_attribute *attr,              
\
   232                              const char *buf,                            
\
   233                              size_t len)                                 
\
   234  {                                                                       
\
   235          int ret;                                                        
\
   236          struct gb_loopback *gb = dev_get_drvdata(dev);                  
\
   237          mutex_lock(&gb->mutex);                                         
\
   238          ret = sscanf(buf, "%"#type, &gb->field);                        
\
   239          if (ret != 1)                                                   
\
   240                  len = -EINVAL;                                          
\
   241          else                                                            
\
   242                  gb_loopback_check_attr(gb);             \
   243          mutex_unlock(&gb->mutex);                                       
\
   244          return len;                                                     
\
   245  }                                                                       
\
   246  static DEVICE_ATTR_RW(field)
   247  
   248  static void gb_loopback_reset_stats(struct gb_loopback *gb);
   249  static void gb_loopback_check_attr(struct gb_loopback *gb)
   250  {
   251          if (gb->us_wait > GB_LOOPBACK_US_WAIT_MAX)
   252                  gb->us_wait = GB_LOOPBACK_US_WAIT_MAX;
   253          if (gb->size > gb_dev.size_max)
   254                  gb->size = gb_dev.size_max;
   255          gb->requests_timedout = 0;
   256          gb->requests_completed = 0;
   257          gb->iteration_count = 0;
   258          gb->send_count = 0;
   259          gb->error = 0;
   260  
   261          if (kfifo_depth < gb->iteration_max) {
   262                  dev_warn(gb->dev,
   263                           "cannot log bytes %u kfifo_depth %u\n",
   264                           gb->iteration_max, kfifo_depth);
   265          }
   266          kfifo_reset_out(&gb->kfifo_lat);
   267          kfifo_reset_out(&gb->kfifo_ts);
   268  
   269          switch (gb->type) {
   270          case GB_LOOPBACK_TYPE_PING:
   271          case GB_LOOPBACK_TYPE_TRANSFER:
   272          case GB_LOOPBACK_TYPE_SINK:
   273                  gb->jiffy_timeout = usecs_to_jiffies(gb->timeout);
   274                  if (!gb->jiffy_timeout)
   275                          gb->jiffy_timeout = GB_LOOPBACK_TIMEOUT_MIN;
   276                  else if (gb->jiffy_timeout > GB_LOOPBACK_TIMEOUT_MAX)
   277                          gb->jiffy_timeout = GB_LOOPBACK_TIMEOUT_MAX;
   278                  gb_loopback_reset_stats(gb);
   279                  wake_up(&gb->wq);
   280                  break;
   281          default:
   282                  gb->type = 0;
   283                  break;
   284          }
   285  }
   286  
   287  /* Time to send and receive one message */
 > 288  gb_loopback_stats_attrs(latency);
   289  /* Number of requests sent per second on this cport */
   290  gb_loopback_stats_attrs(requests_per_second);
   291  /* Quantity of data sent and received on this cport */
   292  gb_loopback_stats_attrs(throughput);
   293  /* Latency across the UniPro link from APBridge's perspective */
   294  gb_loopback_stats_attrs(apbridge_unipro_latency);
   295  /* Firmware induced overhead in the GPBridge */
 > 296  gb_loopback_stats_attrs(gbphy_firmware_latency);
   297  
   298  /* Number of errors encountered during loop */
   299  gb_loopback_ro_attr(error);
   300  /* Number of requests successfully completed async */
   301  gb_loopback_ro_attr(requests_completed);
   302  /* Number of requests timed out async */
   303  gb_loopback_ro_attr(requests_timedout);
   304  /* Timeout minimum in useconds */
   305  gb_loopback_ro_attr(timeout_min);
   306  /* Timeout minimum in useconds */
   307  gb_loopback_ro_attr(timeout_max);
   308  
   309  /*
   310   * Type of loopback message to send based on protocol type definitions
   311   * 0 => Don't send message
   312   * 2 => Send ping message continuously (message without payload)
   313   * 3 => Send transfer message continuously (message with payload,
   314   *                                         payload returned in response)
   315   * 4 => Send a sink message (message with payload, no payload in 
response)
   316   */
   317  gb_dev_loopback_rw_attr(type, d);
   318  /* Size of transfer message payload: 0-4096 bytes */
   319  gb_dev_loopback_rw_attr(size, u);
   320  /* Time to wait between two messages: 0-1000 ms */
   321  gb_dev_loopback_rw_attr(us_wait, d);
   322  /* Maximum iterations for a given operation: 1-(2^32-1), 0 implies 
infinite */
   323  gb_dev_loopback_rw_attr(iteration_max, u);
   324  /* The current index of the for (i = 0; i < iteration_max; i++) loop */
   325  gb_dev_loopback_ro_attr(iteration_count, false);
   326  /* A flag to indicate synchronous or asynchronous operations */
   327  gb_dev_loopback_rw_attr(async, u);
   328  /* Timeout of an individual asynchronous request */
   329  gb_dev_loopback_rw_attr(timeout, u);
   330  /* Maximum number of in-flight operations before back-off */
   331  gb_dev_loopback_rw_attr(outstanding_operations_max, u);
   332  
   333  static struct attribute *loopback_attrs[] = {
 > 334          &dev_attr_latency_min.attr,
 > 335          &dev_attr_latency_max.attr,
 > 336          &dev_attr_latency_avg.attr,
 > 337          &dev_attr_requests_per_second_min.attr,
 > 338          &dev_attr_requests_per_second_max.attr,
 > 339          &dev_attr_requests_per_second_avg.attr,
 > 340          &dev_attr_throughput_min.attr,
 > 341          &dev_attr_throughput_max.attr,
 > 342          &dev_attr_throughput_avg.attr,
 > 343          &dev_attr_apbridge_unipro_latency_min.attr,
 > 344          &dev_attr_apbridge_unipro_latency_max.attr,
 > 345          &dev_attr_apbridge_unipro_latency_avg.attr,
 > 346          &dev_attr_gbphy_firmware_latency_min.attr,
 > 347          &dev_attr_gbphy_firmware_latency_max.attr,
 > 348          &dev_attr_gbphy_firmware_latency_avg.attr,
   349          &dev_attr_type.attr,
   350          &dev_attr_size.attr,
   351          &dev_attr_us_wait.attr,

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to