[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <201703251549.H3iXsEig%fengguang.wu@intel.com>
Date: Sat, 25 Mar 2017 15:26:35 +0800
From: kbuild test robot <lkp@...el.com>
To: Mark Stenglein <mark@...ngle.in>
Cc: kbuild-all@...org, gregkh@...uxfoundation.org,
devel@...verdev.osuosl.org, Mark Stenglein <mark@...ngle.in>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: most: Adds parentheses around macros with
complex values
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 <christian.gromm@...rochip.com>
:::::: CC: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (26450 bytes)
Powered by blists - more mailing lists