From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967465AbdCYH1q (ORCPT ); Sat, 25 Mar 2017 03:27:46 -0400 Received: from mga04.intel.com ([192.55.52.120]:13919 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752824AbdCYH1k (ORCPT ); Sat, 25 Mar 2017 03:27:40 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,218,1486454400"; d="gz'50?scan'50,208,50";a="64830144" Date: Sat, 25 Mar 2017 15:26:35 +0800 From: kbuild test robot To: Mark Stenglein Cc: kbuild-all@01.org, gregkh@linuxfoundation.org, devel@driverdev.osuosl.org, Mark Stenglein , linux-kernel@vger.kernel.org Subject: Re: [PATCH] staging: most: Adds parentheses around macros with complex values Message-ID: <201703251549.H3iXsEig%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="VS++wcV0S1rZb1Fb" Content-Disposition: inline In-Reply-To: <20170323083838.29565-1-mark@stengle.in> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --VS++wcV0S1rZb1Fb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Mark, [auto build test ERROR on staging/staging-testing] [also build test ERROR on v4.11-rc3 next-20170324] [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/Mark-Stenglein/staging-most-Adds-parentheses-around-macros-with-complex-values/20170325-145958 config: i386-randconfig-x073-201712 (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//most/mostcore/core.c:344:8: error: macro names must be identifiers #define(create_show_channel_attribute(val) \ ^ >> drivers/staging//most/mostcore/core.c:347:1: warning: data definition has no type or storage class create_show_channel_attribute(available_directions); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:347:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] >> drivers/staging//most/mostcore/core.c:347:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:348:1: warning: data definition has no type or storage class create_show_channel_attribute(available_datatypes); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:348:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:348:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:349:1: warning: data definition has no type or storage class create_show_channel_attribute(number_of_packet_buffers); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:349:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:349:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:350:1: warning: data definition has no type or storage class create_show_channel_attribute(number_of_stream_buffers); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:350:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:350:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:351:1: warning: data definition has no type or storage class create_show_channel_attribute(size_of_stream_buffer); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:351:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:351:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:352:1: warning: data definition has no type or storage class create_show_channel_attribute(size_of_packet_buffer); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:352:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:352:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:353:1: warning: data definition has no type or storage class create_show_channel_attribute(channel_starving); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:353:1: error: type defaults to 'int' in declaration of 'create_show_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:353:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:496:8: error: macro names must be identifiers #define(create_channel_attribute(value) \ ^ drivers/staging//most/mostcore/core.c:499:1: warning: data definition has no type or storage class create_channel_attribute(set_buffer_size); ^~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:499:1: error: type defaults to 'int' in declaration of 'create_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:499:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:500:1: warning: data definition has no type or storage class create_channel_attribute(set_number_of_buffers); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:500:1: error: type defaults to 'int' in declaration of 'create_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:500:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:501:1: warning: data definition has no type or storage class create_channel_attribute(set_direction); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:501:1: error: type defaults to 'int' in declaration of 'create_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:501:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:502:1: warning: data definition has no type or storage class create_channel_attribute(set_datatype); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:502:1: error: type defaults to 'int' in declaration of 'create_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:502:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:503:1: warning: data definition has no type or storage class create_channel_attribute(set_subbuffer_size); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:503:1: error: type defaults to 'int' in declaration of 'create_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:503:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:504:1: warning: data definition has no type or storage class create_channel_attribute(set_packets_per_xact); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:504:1: error: type defaults to 'int' in declaration of 'create_channel_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:504:1: warning: parameter names (without types) in function declaration >> drivers/staging//most/mostcore/core.c:510:3: error: 'most_chnl_attr_available_directions' undeclared here (not in a function) &most_chnl_attr_available_directions.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:511:3: error: 'most_chnl_attr_available_datatypes' undeclared here (not in a function) &most_chnl_attr_available_datatypes.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:512:3: error: 'most_chnl_attr_number_of_packet_buffers' undeclared here (not in a function) &most_chnl_attr_number_of_packet_buffers.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:513:3: error: 'most_chnl_attr_number_of_stream_buffers' undeclared here (not in a function) &most_chnl_attr_number_of_stream_buffers.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:514:3: error: 'most_chnl_attr_size_of_packet_buffer' undeclared here (not in a function) &most_chnl_attr_size_of_packet_buffer.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:515:3: error: 'most_chnl_attr_size_of_stream_buffer' undeclared here (not in a function) &most_chnl_attr_size_of_stream_buffer.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:516:3: error: 'most_chnl_attr_set_number_of_buffers' undeclared here (not in a function) &most_chnl_attr_set_number_of_buffers.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:517:3: error: 'most_chnl_attr_set_buffer_size' undeclared here (not in a function) &most_chnl_attr_set_buffer_size.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:518:3: error: 'most_chnl_attr_set_direction' undeclared here (not in a function) &most_chnl_attr_set_direction.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:519:3: error: 'most_chnl_attr_set_datatype' undeclared here (not in a function) &most_chnl_attr_set_datatype.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:520:3: error: 'most_chnl_attr_set_subbuffer_size' undeclared here (not in a function) &most_chnl_attr_set_subbuffer_size.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:521:3: error: 'most_chnl_attr_set_packets_per_xact' undeclared here (not in a function) &most_chnl_attr_set_packets_per_xact.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:522:3: error: 'most_chnl_attr_channel_starving' undeclared here (not in a function) &most_chnl_attr_channel_starving.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:690:8: error: macro names must be identifiers #define(create_inst_attribute(value) \ ^ drivers/staging//most/mostcore/core.c:693:1: warning: data definition has no type or storage class create_inst_attribute(description); ^~~~~~~~~~~~~~~~~~~~~ >> drivers/staging//most/mostcore/core.c:693:1: error: type defaults to 'int' in declaration of 'create_inst_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:693:1: warning: parameter names (without types) in function declaration drivers/staging//most/mostcore/core.c:694:1: warning: data definition has no type or storage class create_inst_attribute(interface); ^~~~~~~~~~~~~~~~~~~~~ drivers/staging//most/mostcore/core.c:694:1: error: type defaults to 'int' in declaration of 'create_inst_attribute' [-Werror=implicit-int] drivers/staging//most/mostcore/core.c:694:1: warning: parameter names (without types) in function declaration >> drivers/staging//most/mostcore/core.c:697:3: error: 'most_inst_attr_description' undeclared here (not in a function) &most_inst_attr_description.attr, ^~~~~~~~~~~~~~~~~~~~~~~~~~ vim +347 drivers/staging//most/mostcore/core.c 57562a72 Christian Gromm 2015-07-24 338 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 339 char *buf) 57562a72 Christian Gromm 2015-07-24 340 { 57562a72 Christian Gromm 2015-07-24 341 return snprintf(buf, PAGE_SIZE, "%d\n", c->is_starving); 57562a72 Christian Gromm 2015-07-24 342 } 57562a72 Christian Gromm 2015-07-24 343 979628ad Mark Stenglein 2017-03-23 @344 #define(create_show_channel_attribute(val) \ 979628ad Mark Stenglein 2017-03-23 345 static MOST_CHNL_ATTR(val, 0444, show_##val, NULL)) 57562a72 Christian Gromm 2015-07-24 346 57562a72 Christian Gromm 2015-07-24 @347 create_show_channel_attribute(available_directions); 57562a72 Christian Gromm 2015-07-24 348 create_show_channel_attribute(available_datatypes); 57562a72 Christian Gromm 2015-07-24 349 create_show_channel_attribute(number_of_packet_buffers); 57562a72 Christian Gromm 2015-07-24 350 create_show_channel_attribute(number_of_stream_buffers); 57562a72 Christian Gromm 2015-07-24 351 create_show_channel_attribute(size_of_stream_buffer); 57562a72 Christian Gromm 2015-07-24 352 create_show_channel_attribute(size_of_packet_buffer); 57562a72 Christian Gromm 2015-07-24 @353 create_show_channel_attribute(channel_starving); 57562a72 Christian Gromm 2015-07-24 354 57562a72 Christian Gromm 2015-07-24 355 static ssize_t show_set_number_of_buffers(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 356 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 357 char *buf) 57562a72 Christian Gromm 2015-07-24 358 { 57562a72 Christian Gromm 2015-07-24 359 return snprintf(buf, PAGE_SIZE, "%d\n", c->cfg.num_buffers); 57562a72 Christian Gromm 2015-07-24 360 } 57562a72 Christian Gromm 2015-07-24 361 57562a72 Christian Gromm 2015-07-24 362 static ssize_t store_set_number_of_buffers(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 363 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 364 const char *buf, 57562a72 Christian Gromm 2015-07-24 365 size_t count) 57562a72 Christian Gromm 2015-07-24 366 { 57562a72 Christian Gromm 2015-07-24 367 int ret = kstrtou16(buf, 0, &c->cfg.num_buffers); 57562a72 Christian Gromm 2015-07-24 368 57562a72 Christian Gromm 2015-07-24 369 if (ret) 57562a72 Christian Gromm 2015-07-24 370 return ret; 57562a72 Christian Gromm 2015-07-24 371 return count; 57562a72 Christian Gromm 2015-07-24 372 } 57562a72 Christian Gromm 2015-07-24 373 57562a72 Christian Gromm 2015-07-24 374 static ssize_t show_set_buffer_size(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 375 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 376 char *buf) 57562a72 Christian Gromm 2015-07-24 377 { 57562a72 Christian Gromm 2015-07-24 378 return snprintf(buf, PAGE_SIZE, "%d\n", c->cfg.buffer_size); 57562a72 Christian Gromm 2015-07-24 379 } 57562a72 Christian Gromm 2015-07-24 380 57562a72 Christian Gromm 2015-07-24 381 static ssize_t store_set_buffer_size(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 382 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 383 const char *buf, 57562a72 Christian Gromm 2015-07-24 384 size_t count) 57562a72 Christian Gromm 2015-07-24 385 { 57562a72 Christian Gromm 2015-07-24 386 int ret = kstrtou16(buf, 0, &c->cfg.buffer_size); 57562a72 Christian Gromm 2015-07-24 387 57562a72 Christian Gromm 2015-07-24 388 if (ret) 57562a72 Christian Gromm 2015-07-24 389 return ret; 57562a72 Christian Gromm 2015-07-24 390 return count; 57562a72 Christian Gromm 2015-07-24 391 } 57562a72 Christian Gromm 2015-07-24 392 57562a72 Christian Gromm 2015-07-24 393 static ssize_t show_set_direction(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 394 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 395 char *buf) 57562a72 Christian Gromm 2015-07-24 396 { 57562a72 Christian Gromm 2015-07-24 397 if (c->cfg.direction & MOST_CH_TX) 95f73013 Christian Gromm 2016-09-21 398 return snprintf(buf, PAGE_SIZE, "tx\n"); 57562a72 Christian Gromm 2015-07-24 399 else if (c->cfg.direction & MOST_CH_RX) 95f73013 Christian Gromm 2016-09-21 400 return snprintf(buf, PAGE_SIZE, "rx\n"); 57562a72 Christian Gromm 2015-07-24 401 return snprintf(buf, PAGE_SIZE, "unconfigured\n"); 57562a72 Christian Gromm 2015-07-24 402 } 57562a72 Christian Gromm 2015-07-24 403 57562a72 Christian Gromm 2015-07-24 404 static ssize_t store_set_direction(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 405 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 406 const char *buf, 57562a72 Christian Gromm 2015-07-24 407 size_t count) 57562a72 Christian Gromm 2015-07-24 408 { 9deba73d Christian Gromm 2015-10-21 409 if (!strcmp(buf, "dir_rx\n")) { 57562a72 Christian Gromm 2015-07-24 410 c->cfg.direction = MOST_CH_RX; 95f73013 Christian Gromm 2016-09-21 411 } else if (!strcmp(buf, "rx\n")) { 95f73013 Christian Gromm 2016-09-21 412 c->cfg.direction = MOST_CH_RX; 9deba73d Christian Gromm 2015-10-21 413 } else if (!strcmp(buf, "dir_tx\n")) { 57562a72 Christian Gromm 2015-07-24 414 c->cfg.direction = MOST_CH_TX; 95f73013 Christian Gromm 2016-09-21 415 } else if (!strcmp(buf, "tx\n")) { 95f73013 Christian Gromm 2016-09-21 416 c->cfg.direction = MOST_CH_TX; 9deba73d Christian Gromm 2015-10-21 417 } else { 57562a72 Christian Gromm 2015-07-24 418 pr_info("WARN: invalid attribute settings\n"); 57562a72 Christian Gromm 2015-07-24 419 return -EINVAL; 57562a72 Christian Gromm 2015-07-24 420 } 57562a72 Christian Gromm 2015-07-24 421 return count; 57562a72 Christian Gromm 2015-07-24 422 } 57562a72 Christian Gromm 2015-07-24 423 57562a72 Christian Gromm 2015-07-24 424 static ssize_t show_set_datatype(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 425 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 426 char *buf) 57562a72 Christian Gromm 2015-07-24 427 { e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 428 int i; e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 429 e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 430 for (i = 0; i < ARRAY_SIZE(ch_data_type); i++) { e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 431 if (c->cfg.data_type & ch_data_type[i].most_ch_data_type) e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 432 return snprintf(buf, PAGE_SIZE, ch_data_type[i].name); e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 433 } 57562a72 Christian Gromm 2015-07-24 434 return snprintf(buf, PAGE_SIZE, "unconfigured\n"); 57562a72 Christian Gromm 2015-07-24 435 } 57562a72 Christian Gromm 2015-07-24 436 57562a72 Christian Gromm 2015-07-24 437 static ssize_t store_set_datatype(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 438 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 439 const char *buf, 57562a72 Christian Gromm 2015-07-24 440 size_t count) 57562a72 Christian Gromm 2015-07-24 441 { e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 442 int i; e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 443 e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 444 for (i = 0; i < ARRAY_SIZE(ch_data_type); i++) { e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 445 if (!strcmp(buf, ch_data_type[i].name)) { e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 446 c->cfg.data_type = ch_data_type[i].most_ch_data_type; e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 447 break; e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 448 } e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 449 } e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 450 e7f2b70f Hari Prasath Gujulan Elango 2015-12-28 451 if (i == ARRAY_SIZE(ch_data_type)) { 57562a72 Christian Gromm 2015-07-24 452 pr_info("WARN: invalid attribute settings\n"); 57562a72 Christian Gromm 2015-07-24 453 return -EINVAL; 57562a72 Christian Gromm 2015-07-24 454 } 57562a72 Christian Gromm 2015-07-24 455 return count; 57562a72 Christian Gromm 2015-07-24 456 } 57562a72 Christian Gromm 2015-07-24 457 57562a72 Christian Gromm 2015-07-24 458 static ssize_t show_set_subbuffer_size(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 459 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 460 char *buf) 57562a72 Christian Gromm 2015-07-24 461 { 57562a72 Christian Gromm 2015-07-24 462 return snprintf(buf, PAGE_SIZE, "%d\n", c->cfg.subbuffer_size); 57562a72 Christian Gromm 2015-07-24 463 } 57562a72 Christian Gromm 2015-07-24 464 57562a72 Christian Gromm 2015-07-24 465 static ssize_t store_set_subbuffer_size(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 466 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 467 const char *buf, 57562a72 Christian Gromm 2015-07-24 468 size_t count) 57562a72 Christian Gromm 2015-07-24 469 { 57562a72 Christian Gromm 2015-07-24 470 int ret = kstrtou16(buf, 0, &c->cfg.subbuffer_size); 57562a72 Christian Gromm 2015-07-24 471 57562a72 Christian Gromm 2015-07-24 472 if (ret) 57562a72 Christian Gromm 2015-07-24 473 return ret; 57562a72 Christian Gromm 2015-07-24 474 return count; 57562a72 Christian Gromm 2015-07-24 475 } 57562a72 Christian Gromm 2015-07-24 476 57562a72 Christian Gromm 2015-07-24 477 static ssize_t show_set_packets_per_xact(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 478 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 479 char *buf) 57562a72 Christian Gromm 2015-07-24 480 { 57562a72 Christian Gromm 2015-07-24 481 return snprintf(buf, PAGE_SIZE, "%d\n", c->cfg.packets_per_xact); 57562a72 Christian Gromm 2015-07-24 482 } 57562a72 Christian Gromm 2015-07-24 483 57562a72 Christian Gromm 2015-07-24 484 static ssize_t store_set_packets_per_xact(struct most_c_obj *c, 57562a72 Christian Gromm 2015-07-24 485 struct most_c_attr *attr, 57562a72 Christian Gromm 2015-07-24 486 const char *buf, 57562a72 Christian Gromm 2015-07-24 487 size_t count) 57562a72 Christian Gromm 2015-07-24 488 { 57562a72 Christian Gromm 2015-07-24 489 int ret = kstrtou16(buf, 0, &c->cfg.packets_per_xact); 57562a72 Christian Gromm 2015-07-24 490 57562a72 Christian Gromm 2015-07-24 491 if (ret) 57562a72 Christian Gromm 2015-07-24 492 return ret; 57562a72 Christian Gromm 2015-07-24 493 return count; 57562a72 Christian Gromm 2015-07-24 494 } 57562a72 Christian Gromm 2015-07-24 495 979628ad Mark Stenglein 2017-03-23 496 #define(create_channel_attribute(value) \ 979628ad Mark Stenglein 2017-03-23 497 static MOST_CHNL_ATTR(value, 0644, show_##value, store_##value)) 57562a72 Christian Gromm 2015-07-24 498 57562a72 Christian Gromm 2015-07-24 @499 create_channel_attribute(set_buffer_size); 57562a72 Christian Gromm 2015-07-24 500 create_channel_attribute(set_number_of_buffers); 57562a72 Christian Gromm 2015-07-24 501 create_channel_attribute(set_direction); 57562a72 Christian Gromm 2015-07-24 502 create_channel_attribute(set_datatype); 57562a72 Christian Gromm 2015-07-24 @503 create_channel_attribute(set_subbuffer_size); 57562a72 Christian Gromm 2015-07-24 @504 create_channel_attribute(set_packets_per_xact); 57562a72 Christian Gromm 2015-07-24 505 57562a72 Christian Gromm 2015-07-24 506 /** 57562a72 Christian Gromm 2015-07-24 507 * most_channel_def_attrs - array of default attributes of channel object 57562a72 Christian Gromm 2015-07-24 508 */ 57562a72 Christian Gromm 2015-07-24 509 static struct attribute *most_channel_def_attrs[] = { 57562a72 Christian Gromm 2015-07-24 @510 &most_chnl_attr_available_directions.attr, 57562a72 Christian Gromm 2015-07-24 @511 &most_chnl_attr_available_datatypes.attr, 57562a72 Christian Gromm 2015-07-24 @512 &most_chnl_attr_number_of_packet_buffers.attr, 57562a72 Christian Gromm 2015-07-24 @513 &most_chnl_attr_number_of_stream_buffers.attr, 57562a72 Christian Gromm 2015-07-24 @514 &most_chnl_attr_size_of_packet_buffer.attr, 57562a72 Christian Gromm 2015-07-24 @515 &most_chnl_attr_size_of_stream_buffer.attr, 57562a72 Christian Gromm 2015-07-24 @516 &most_chnl_attr_set_number_of_buffers.attr, 57562a72 Christian Gromm 2015-07-24 @517 &most_chnl_attr_set_buffer_size.attr, 57562a72 Christian Gromm 2015-07-24 @518 &most_chnl_attr_set_direction.attr, 57562a72 Christian Gromm 2015-07-24 @519 &most_chnl_attr_set_datatype.attr, 57562a72 Christian Gromm 2015-07-24 @520 &most_chnl_attr_set_subbuffer_size.attr, 57562a72 Christian Gromm 2015-07-24 @521 &most_chnl_attr_set_packets_per_xact.attr, 57562a72 Christian Gromm 2015-07-24 @522 &most_chnl_attr_channel_starving.attr, 57562a72 Christian Gromm 2015-07-24 523 NULL, 57562a72 Christian Gromm 2015-07-24 524 }; 57562a72 Christian Gromm 2015-07-24 525 :::::: The code at line 347 was first introduced by commit :::::: 57562a72414ca35b2e614cfe0a1b1a7b7e7813dd Staging: most: add MOST driver's core module :::::: TO: Christian Gromm :::::: CC: Greg Kroah-Hartman --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --VS++wcV0S1rZb1Fb Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --VS++wcV0S1rZb1Fb--