drivers/net/bonding/bond_main.c:4877:3: warning: 'strncpy' specified bound 16 equals destination size

From: kernel test robot
Date: Sun Feb 14 2021 - 18:57:53 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 358feceebbf68f33c44c6650d14455389e65282d
commit: 8d58f222e85f01da0c0e1fc1e77986c86de889e2 ubsan: disable UBSAN_ALIGNMENT under COMPILE_TEST
date: 9 months ago
config: s390-randconfig-r014-20210215 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8d58f222e85f01da0c0e1fc1e77986c86de889e2
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8d58f222e85f01da0c0e1fc1e77986c86de889e2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

| ^~~~~~~~~~~~
include/net/sch_generic.h:868:2: note: in expansion of macro 'this_cpu_inc'
868 | this_cpu_inc(sch->cpu_qstats->qlen);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_qlen_dec':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:519:33: note: in expansion of macro 'this_cpu_add'
519 | #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val))
| ^~~~~~~~~~~~
include/linux/percpu-defs.h:521:28: note: in expansion of macro 'this_cpu_sub'
521 | #define this_cpu_dec(pcp) this_cpu_sub(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:873:2: note: in expansion of macro 'this_cpu_dec'
873 | this_cpu_dec(sch->cpu_qstats->qlen);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_requeues_inc':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:878:2: note: in expansion of macro 'this_cpu_inc'
878 | this_cpu_inc(sch->cpu_qstats->requeues);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_drop':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:903:2: note: in expansion of macro 'this_cpu_inc'
903 | this_cpu_inc(sch->cpu_qstats->drops);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_update_stats_at_enqueue':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/net/sch_generic.h:1102:3: note: in expansion of macro 'this_cpu_add'
1102 | this_cpu_add(sch->cpu_qstats->backlog, pkt_len);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'mini_qdisc_qstats_cpu_drop':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:1271:2: note: in expansion of macro 'this_cpu_inc'
1271 | this_cpu_inc(miniq->cpu_qstats->drops);
| ^~~~~~~~~~~~
drivers/net/bonding/bond_main.c: In function 'bond_check_params.constprop':
>> drivers/net/bonding/bond_main.c:4877:3: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation]
4877 | strncpy(params->primary, primary, IFNAMSIZ);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/strncpy +4877 drivers/net/bonding/bond_main.c

^1da177e4c3f41 Linus Torvalds 2005-04-16 4499
^1da177e4c3f41 Linus Torvalds 2005-04-16 4500 static int bond_check_params(struct bond_params *params)
^1da177e4c3f41 Linus Torvalds 2005-04-16 4501 {
5a5c5fd48e3bcd nikolay@xxxxxxxxxx 2013-05-18 4502 int arp_validate_value, fail_over_mac_value, primary_reselect_value, i;
f3253339a47ff3 stephen hemminger 2014-03-04 4503 struct bond_opt_value newval;
f3253339a47ff3 stephen hemminger 2014-03-04 4504 const struct bond_opt_value *valptr;
72ccc471e13b82 Jarod Wilson 2017-05-19 4505 int arp_all_targets_value = 0;
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4506 u16 ad_actor_sys_prio = 0;
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4507 u16 ad_user_port_key = 0;
72ccc471e13b82 Jarod Wilson 2017-05-19 4508 __be32 arp_target[BOND_MAX_ARP_TARGETS] = { 0 };
dc9c4d0fe023b5 Mahesh Bandewar 2017-03-08 4509 int arp_ip_count;
dc9c4d0fe023b5 Mahesh Bandewar 2017-03-08 4510 int bond_mode = BOND_MODE_ROUNDROBIN;
dc9c4d0fe023b5 Mahesh Bandewar 2017-03-08 4511 int xmit_hashtype = BOND_XMIT_POLICY_LAYER2;
dc9c4d0fe023b5 Mahesh Bandewar 2017-03-08 4512 int lacp_fast = 0;
f13ad104b4e886 Nikolay Aleksandrov 2017-09-12 4513 int tlb_dynamic_lb;
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4514
547942cace50e5 Nikolay Aleksandrov 2014-09-15 4515 /* Convert string parameters. */
^1da177e4c3f41 Linus Torvalds 2005-04-16 4516 if (mode) {
2b3798d5e1377c Nikolay Aleksandrov 2014-01-22 4517 bond_opt_initstr(&newval, mode);
2b3798d5e1377c Nikolay Aleksandrov 2014-01-22 4518 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_MODE), &newval);
2b3798d5e1377c Nikolay Aleksandrov 2014-01-22 4519 if (!valptr) {
2b3798d5e1377c Nikolay Aleksandrov 2014-01-22 4520 pr_err("Error: Invalid bonding mode \"%s\"\n", mode);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4521 return -EINVAL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4522 }
2b3798d5e1377c Nikolay Aleksandrov 2014-01-22 4523 bond_mode = valptr->value;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4524 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4525
169a3e66637c66 Jay Vosburgh 2005-06-26 4526 if (xmit_hash_policy) {
e79c1055749e31 Debabrata Banerjee 2018-05-14 4527 if (bond_mode == BOND_MODE_ROUNDROBIN ||
e79c1055749e31 Debabrata Banerjee 2018-05-14 4528 bond_mode == BOND_MODE_ACTIVEBACKUP ||
e79c1055749e31 Debabrata Banerjee 2018-05-14 4529 bond_mode == BOND_MODE_BROADCAST) {
a4aee5c808fc5b Joe Perches 2009-12-13 4530 pr_info("xmit_hash_policy param is irrelevant in mode %s\n",
169a3e66637c66 Jay Vosburgh 2005-06-26 4531 bond_mode_name(bond_mode));
169a3e66637c66 Jay Vosburgh 2005-06-26 4532 } else {
a4b32ce7f891d5 Nikolay Aleksandrov 2014-01-22 4533 bond_opt_initstr(&newval, xmit_hash_policy);
a4b32ce7f891d5 Nikolay Aleksandrov 2014-01-22 4534 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_XMIT_HASH),
a4b32ce7f891d5 Nikolay Aleksandrov 2014-01-22 4535 &newval);
a4b32ce7f891d5 Nikolay Aleksandrov 2014-01-22 4536 if (!valptr) {
a4aee5c808fc5b Joe Perches 2009-12-13 4537 pr_err("Error: Invalid xmit_hash_policy \"%s\"\n",
169a3e66637c66 Jay Vosburgh 2005-06-26 4538 xmit_hash_policy);
169a3e66637c66 Jay Vosburgh 2005-06-26 4539 return -EINVAL;
169a3e66637c66 Jay Vosburgh 2005-06-26 4540 }
a4b32ce7f891d5 Nikolay Aleksandrov 2014-01-22 4541 xmit_hashtype = valptr->value;
169a3e66637c66 Jay Vosburgh 2005-06-26 4542 }
169a3e66637c66 Jay Vosburgh 2005-06-26 4543 }
169a3e66637c66 Jay Vosburgh 2005-06-26 4544
^1da177e4c3f41 Linus Torvalds 2005-04-16 4545 if (lacp_rate) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4546 if (bond_mode != BOND_MODE_8023AD) {
a4aee5c808fc5b Joe Perches 2009-12-13 4547 pr_info("lacp_rate param is irrelevant in mode %s\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4548 bond_mode_name(bond_mode));
^1da177e4c3f41 Linus Torvalds 2005-04-16 4549 } else {
d3131de76b1b1a Nikolay Aleksandrov 2014-01-22 4550 bond_opt_initstr(&newval, lacp_rate);
d3131de76b1b1a Nikolay Aleksandrov 2014-01-22 4551 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_LACP_RATE),
d3131de76b1b1a Nikolay Aleksandrov 2014-01-22 4552 &newval);
d3131de76b1b1a Nikolay Aleksandrov 2014-01-22 4553 if (!valptr) {
a4aee5c808fc5b Joe Perches 2009-12-13 4554 pr_err("Error: Invalid lacp rate \"%s\"\n",
d3131de76b1b1a Nikolay Aleksandrov 2014-01-22 4555 lacp_rate);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4556 return -EINVAL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4557 }
d3131de76b1b1a Nikolay Aleksandrov 2014-01-22 4558 lacp_fast = valptr->value;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4559 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4560 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4561
fd989c83325cb3 Jay Vosburgh 2008-11-04 4562 if (ad_select) {
548d28bd0eac84 Nikolay Aleksandrov 2014-07-13 4563 bond_opt_initstr(&newval, ad_select);
9e5f5eebe765b3 Nikolay Aleksandrov 2014-01-22 4564 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_AD_SELECT),
9e5f5eebe765b3 Nikolay Aleksandrov 2014-01-22 4565 &newval);
9e5f5eebe765b3 Nikolay Aleksandrov 2014-01-22 4566 if (!valptr) {
9e5f5eebe765b3 Nikolay Aleksandrov 2014-01-22 4567 pr_err("Error: Invalid ad_select \"%s\"\n", ad_select);
fd989c83325cb3 Jay Vosburgh 2008-11-04 4568 return -EINVAL;
fd989c83325cb3 Jay Vosburgh 2008-11-04 4569 }
9e5f5eebe765b3 Nikolay Aleksandrov 2014-01-22 4570 params->ad_select = valptr->value;
9e5f5eebe765b3 Nikolay Aleksandrov 2014-01-22 4571 if (bond_mode != BOND_MODE_8023AD)
91565ebbcc5aea Joe Perches 2014-02-15 4572 pr_warn("ad_select param only affects 802.3ad mode\n");
fd989c83325cb3 Jay Vosburgh 2008-11-04 4573 } else {
fd989c83325cb3 Jay Vosburgh 2008-11-04 4574 params->ad_select = BOND_AD_STABLE;
fd989c83325cb3 Jay Vosburgh 2008-11-04 4575 }
fd989c83325cb3 Jay Vosburgh 2008-11-04 4576
f584130616dfae Nicolas de Pesloüan 2009-08-28 4577 if (max_bonds < 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4578 pr_warn("Warning: max_bonds (%d) not in range %d-%d, so it was reset to BOND_DEFAULT_MAX_BONDS (%d)\n",
b8a9787eddb0e4 Jay Vosburgh 2008-06-13 4579 max_bonds, 0, INT_MAX, BOND_DEFAULT_MAX_BONDS);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4580 max_bonds = BOND_DEFAULT_MAX_BONDS;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4581 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4582
^1da177e4c3f41 Linus Torvalds 2005-04-16 4583 if (miimon < 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4584 pr_warn("Warning: miimon module parameter (%d), not in range 0-%d, so it was reset to 0\n",
b98d9c66e1c382 Nikolay Aleksandrov 2014-01-22 4585 miimon, INT_MAX);
b98d9c66e1c382 Nikolay Aleksandrov 2014-01-22 4586 miimon = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4587 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4588
^1da177e4c3f41 Linus Torvalds 2005-04-16 4589 if (updelay < 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4590 pr_warn("Warning: updelay module parameter (%d), not in range 0-%d, so it was reset to 0\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4591 updelay, INT_MAX);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4592 updelay = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4593 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4594
^1da177e4c3f41 Linus Torvalds 2005-04-16 4595 if (downdelay < 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4596 pr_warn("Warning: downdelay module parameter (%d), not in range 0-%d, so it was reset to 0\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4597 downdelay, INT_MAX);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4598 downdelay = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4599 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4600
b3c898e20b1881 Debabrata Banerjee 2018-05-16 4601 if ((use_carrier != 0) && (use_carrier != 1)) {
b3c898e20b1881 Debabrata Banerjee 2018-05-16 4602 pr_warn("Warning: use_carrier module parameter (%d), not of valid value (0/1), so it was set to 1\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4603 use_carrier);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4604 use_carrier = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4605 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4606
ad246c992bea6d Ben Hutchings 2011-04-26 4607 if (num_peer_notif < 0 || num_peer_notif > 255) {
91565ebbcc5aea Joe Perches 2014-02-15 4608 pr_warn("Warning: num_grat_arp/num_unsol_na (%d) not in range 0-255 so it was reset to 1\n",
ad246c992bea6d Ben Hutchings 2011-04-26 4609 num_peer_notif);
ad246c992bea6d Ben Hutchings 2011-04-26 4610 num_peer_notif = 1;
ad246c992bea6d Ben Hutchings 2011-04-26 4611 }
ad246c992bea6d Ben Hutchings 2011-04-26 4612
834db4bcdf937b dingtianhong 2013-12-21 4613 /* reset values for 802.3ad/TLB/ALB */
267bed777a5f8a Veaceslav Falico 2014-05-15 4614 if (!bond_mode_uses_arp(bond_mode)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4615 if (!miimon) {
91565ebbcc5aea Joe Perches 2014-02-15 4616 pr_warn("Warning: miimon must be specified, otherwise bonding will not detect link failure, speed and duplex which are essential for 802.3ad operation\n");
91565ebbcc5aea Joe Perches 2014-02-15 4617 pr_warn("Forcing miimon to 100msec\n");
fe9d04afe9bee0 dingtianhong 2013-11-22 4618 miimon = BOND_DEFAULT_MIIMON;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4619 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4620 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4621
bb1d912323d5dd Andy Gospodarek 2010-06-02 4622 if (tx_queues < 1 || tx_queues > 255) {
91565ebbcc5aea Joe Perches 2014-02-15 4623 pr_warn("Warning: tx_queues (%d) should be between 1 and 255, resetting to %d\n",
bb1d912323d5dd Andy Gospodarek 2010-06-02 4624 tx_queues, BOND_DEFAULT_TX_QUEUES);
bb1d912323d5dd Andy Gospodarek 2010-06-02 4625 tx_queues = BOND_DEFAULT_TX_QUEUES;
bb1d912323d5dd Andy Gospodarek 2010-06-02 4626 }
bb1d912323d5dd Andy Gospodarek 2010-06-02 4627
ebd8e4977a87cb Andy Gospodarek 2010-06-02 4628 if ((all_slaves_active != 0) && (all_slaves_active != 1)) {
91565ebbcc5aea Joe Perches 2014-02-15 4629 pr_warn("Warning: all_slaves_active module parameter (%d), not of valid value (0/1), so it was set to 0\n",
91565ebbcc5aea Joe Perches 2014-02-15 4630 all_slaves_active);
ebd8e4977a87cb Andy Gospodarek 2010-06-02 4631 all_slaves_active = 0;
ebd8e4977a87cb Andy Gospodarek 2010-06-02 4632 }
ebd8e4977a87cb Andy Gospodarek 2010-06-02 4633
c2952c314b4fe6 Flavio Leitner 2010-10-05 4634 if (resend_igmp < 0 || resend_igmp > 255) {
91565ebbcc5aea Joe Perches 2014-02-15 4635 pr_warn("Warning: resend_igmp (%d) should be between 0 and 255, resetting to %d\n",
c2952c314b4fe6 Flavio Leitner 2010-10-05 4636 resend_igmp, BOND_DEFAULT_RESEND_IGMP);
c2952c314b4fe6 Flavio Leitner 2010-10-05 4637 resend_igmp = BOND_DEFAULT_RESEND_IGMP;
c2952c314b4fe6 Flavio Leitner 2010-10-05 4638 }
c2952c314b4fe6 Flavio Leitner 2010-10-05 4639
aa59d8517d1017 Nikolay Aleksandrov 2014-01-22 4640 bond_opt_initval(&newval, packets_per_slave);
aa59d8517d1017 Nikolay Aleksandrov 2014-01-22 4641 if (!bond_opt_parse(bond_opt_get(BOND_OPT_PACKETS_PER_SLAVE), &newval)) {
73958329ea1fe0 Nikolay Aleksandrov 2013-11-05 4642 pr_warn("Warning: packets_per_slave (%d) should be between 0 and %u resetting to 1\n",
73958329ea1fe0 Nikolay Aleksandrov 2013-11-05 4643 packets_per_slave, USHRT_MAX);
73958329ea1fe0 Nikolay Aleksandrov 2013-11-05 4644 packets_per_slave = 1;
73958329ea1fe0 Nikolay Aleksandrov 2013-11-05 4645 }
73958329ea1fe0 Nikolay Aleksandrov 2013-11-05 4646
^1da177e4c3f41 Linus Torvalds 2005-04-16 4647 if (bond_mode == BOND_MODE_ALB) {
a4aee5c808fc5b Joe Perches 2009-12-13 4648 pr_notice("In ALB mode you might experience client disconnections upon reconnection of a link if the bonding module updelay parameter (%d msec) is incompatible with the forwarding delay time of the switch\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4649 updelay);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4650 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4651
^1da177e4c3f41 Linus Torvalds 2005-04-16 4652 if (!miimon) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4653 if (updelay || downdelay) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4654 /* just warn the user the up/down delay will have
^1da177e4c3f41 Linus Torvalds 2005-04-16 4655 * no effect since miimon is zero...
^1da177e4c3f41 Linus Torvalds 2005-04-16 4656 */
91565ebbcc5aea Joe Perches 2014-02-15 4657 pr_warn("Warning: miimon module parameter not set and updelay (%d) or downdelay (%d) module parameter is set; updelay and downdelay have no effect unless miimon is set\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4658 updelay, downdelay);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4659 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4660 } else {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4661 /* don't allow arp monitoring */
^1da177e4c3f41 Linus Torvalds 2005-04-16 4662 if (arp_interval) {
91565ebbcc5aea Joe Perches 2014-02-15 4663 pr_warn("Warning: miimon (%d) and arp_interval (%d) can't be used simultaneously, disabling ARP monitoring\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4664 miimon, arp_interval);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4665 arp_interval = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4666 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4667
^1da177e4c3f41 Linus Torvalds 2005-04-16 4668 if ((updelay % miimon) != 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4669 pr_warn("Warning: updelay (%d) is not a multiple of miimon (%d), updelay rounded to %d ms\n",
91565ebbcc5aea Joe Perches 2014-02-15 4670 updelay, miimon, (updelay / miimon) * miimon);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4671 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4672
^1da177e4c3f41 Linus Torvalds 2005-04-16 4673 updelay /= miimon;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4674
^1da177e4c3f41 Linus Torvalds 2005-04-16 4675 if ((downdelay % miimon) != 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4676 pr_warn("Warning: downdelay (%d) is not a multiple of miimon (%d), downdelay rounded to %d ms\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4677 downdelay, miimon,
^1da177e4c3f41 Linus Torvalds 2005-04-16 4678 (downdelay / miimon) * miimon);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4679 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4680
^1da177e4c3f41 Linus Torvalds 2005-04-16 4681 downdelay /= miimon;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4682 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4683
^1da177e4c3f41 Linus Torvalds 2005-04-16 4684 if (arp_interval < 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4685 pr_warn("Warning: arp_interval module parameter (%d), not in range 0-%d, so it was reset to 0\n",
7bdb04ed0dbf9f Nikolay Aleksandrov 2014-01-22 4686 arp_interval, INT_MAX);
7bdb04ed0dbf9f Nikolay Aleksandrov 2014-01-22 4687 arp_interval = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4688 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4689
5a5c5fd48e3bcd nikolay@xxxxxxxxxx 2013-05-18 4690 for (arp_ip_count = 0, i = 0;
5a5c5fd48e3bcd nikolay@xxxxxxxxxx 2013-05-18 4691 (arp_ip_count < BOND_MAX_ARP_TARGETS) && arp_ip_target[i]; i++) {
89015c18ff34a3 dingtianhong 2013-12-04 4692 __be32 ip;
547942cace50e5 Nikolay Aleksandrov 2014-09-15 4693
547942cace50e5 Nikolay Aleksandrov 2014-09-15 4694 /* not a complete check, but good enough to catch mistakes */
89015c18ff34a3 dingtianhong 2013-12-04 4695 if (!in4_pton(arp_ip_target[i], -1, (u8 *)&ip, -1, NULL) ||
2807a9feb23936 Veaceslav Falico 2014-05-15 4696 !bond_is_ip_target_ok(ip)) {
91565ebbcc5aea Joe Perches 2014-02-15 4697 pr_warn("Warning: bad arp_ip_target module parameter (%s), ARP monitoring will not be performed\n",
5a5c5fd48e3bcd nikolay@xxxxxxxxxx 2013-05-18 4698 arp_ip_target[i]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4699 arp_interval = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4700 } else {
0afee4e8b9fe4b Veaceslav Falico 2013-06-24 4701 if (bond_get_targets_ip(arp_target, ip) == -1)
5a5c5fd48e3bcd nikolay@xxxxxxxxxx 2013-05-18 4702 arp_target[arp_ip_count++] = ip;
0afee4e8b9fe4b Veaceslav Falico 2013-06-24 4703 else
91565ebbcc5aea Joe Perches 2014-02-15 4704 pr_warn("Warning: duplicate address %pI4 in arp_ip_target, skipping\n",
0afee4e8b9fe4b Veaceslav Falico 2013-06-24 4705 &ip);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4706 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4707 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4708
^1da177e4c3f41 Linus Torvalds 2005-04-16 4709 if (arp_interval && !arp_ip_count) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4710 /* don't allow arping if no arp_ip_target given... */
91565ebbcc5aea Joe Perches 2014-02-15 4711 pr_warn("Warning: arp_interval module parameter (%d) specified without providing an arp_ip_target parameter, arp_interval was reset to 0\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4712 arp_interval);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4713 arp_interval = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4714 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4715
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4716 if (arp_validate) {
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4717 if (!arp_interval) {
a4aee5c808fc5b Joe Perches 2009-12-13 4718 pr_err("arp_validate requires arp_interval\n");
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4719 return -EINVAL;
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4720 }
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4721
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4722 bond_opt_initstr(&newval, arp_validate);
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4723 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_ARP_VALIDATE),
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4724 &newval);
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4725 if (!valptr) {
a4aee5c808fc5b Joe Perches 2009-12-13 4726 pr_err("Error: invalid arp_validate \"%s\"\n",
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4727 arp_validate);
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4728 return -EINVAL;
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4729 }
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4730 arp_validate_value = valptr->value;
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4731 } else {
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4732 arp_validate_value = 0;
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4733 }
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4734
8599b52e14a161 Veaceslav Falico 2013-06-24 4735 if (arp_all_targets) {
edf36b24c58dbb Nikolay Aleksandrov 2014-01-22 4736 bond_opt_initstr(&newval, arp_all_targets);
edf36b24c58dbb Nikolay Aleksandrov 2014-01-22 4737 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_ARP_ALL_TARGETS),
edf36b24c58dbb Nikolay Aleksandrov 2014-01-22 4738 &newval);
edf36b24c58dbb Nikolay Aleksandrov 2014-01-22 4739 if (!valptr) {
8599b52e14a161 Veaceslav Falico 2013-06-24 4740 pr_err("Error: invalid arp_all_targets_value \"%s\"\n",
8599b52e14a161 Veaceslav Falico 2013-06-24 4741 arp_all_targets);
8599b52e14a161 Veaceslav Falico 2013-06-24 4742 arp_all_targets_value = 0;
edf36b24c58dbb Nikolay Aleksandrov 2014-01-22 4743 } else {
edf36b24c58dbb Nikolay Aleksandrov 2014-01-22 4744 arp_all_targets_value = valptr->value;
8599b52e14a161 Veaceslav Falico 2013-06-24 4745 }
8599b52e14a161 Veaceslav Falico 2013-06-24 4746 }
8599b52e14a161 Veaceslav Falico 2013-06-24 4747
^1da177e4c3f41 Linus Torvalds 2005-04-16 4748 if (miimon) {
a4aee5c808fc5b Joe Perches 2009-12-13 4749 pr_info("MII link monitoring set to %d ms\n", miimon);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4750 } else if (arp_interval) {
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4751 valptr = bond_opt_get_val(BOND_OPT_ARP_VALIDATE,
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4752 arp_validate_value);
a4aee5c808fc5b Joe Perches 2009-12-13 4753 pr_info("ARP monitoring set to %d ms, validate %s, with %d target(s):",
162288810c9ebd Nikolay Aleksandrov 2014-01-22 4754 arp_interval, valptr->string, arp_ip_count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4755
^1da177e4c3f41 Linus Torvalds 2005-04-16 4756 for (i = 0; i < arp_ip_count; i++)
90194264ceffdf Joe Perches 2014-02-15 4757 pr_cont(" %s", arp_ip_target[i]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4758
90194264ceffdf Joe Perches 2014-02-15 4759 pr_cont("\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 4760
b8a9787eddb0e4 Jay Vosburgh 2008-06-13 4761 } else if (max_bonds) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4762 /* miimon and arp_interval not set, we need one so things
^1da177e4c3f41 Linus Torvalds 2005-04-16 4763 * work as expected, see bonding.txt for details
^1da177e4c3f41 Linus Torvalds 2005-04-16 4764 */
90194264ceffdf Joe Perches 2014-02-15 4765 pr_debug("Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect link failures! see bonding.txt for details\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 4766 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4767
ec0865a94991d1 Veaceslav Falico 2014-05-15 4768 if (primary && !bond_mode_uses_primary(bond_mode)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 4769 /* currently, using a primary only makes sense
^1da177e4c3f41 Linus Torvalds 2005-04-16 4770 * in active backup, TLB or ALB modes
^1da177e4c3f41 Linus Torvalds 2005-04-16 4771 */
91565ebbcc5aea Joe Perches 2014-02-15 4772 pr_warn("Warning: %s primary device specified but has no effect in %s mode\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 4773 primary, bond_mode_name(bond_mode));
^1da177e4c3f41 Linus Torvalds 2005-04-16 4774 primary = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4775 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4776
a549952ad323d6 Jiri Pirko 2009-09-25 4777 if (primary && primary_reselect) {
388d3a6d4aa356 Nikolay Aleksandrov 2014-01-22 4778 bond_opt_initstr(&newval, primary_reselect);
388d3a6d4aa356 Nikolay Aleksandrov 2014-01-22 4779 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_PRIMARY_RESELECT),
388d3a6d4aa356 Nikolay Aleksandrov 2014-01-22 4780 &newval);
388d3a6d4aa356 Nikolay Aleksandrov 2014-01-22 4781 if (!valptr) {
a4aee5c808fc5b Joe Perches 2009-12-13 4782 pr_err("Error: Invalid primary_reselect \"%s\"\n",
388d3a6d4aa356 Nikolay Aleksandrov 2014-01-22 4783 primary_reselect);
a549952ad323d6 Jiri Pirko 2009-09-25 4784 return -EINVAL;
a549952ad323d6 Jiri Pirko 2009-09-25 4785 }
388d3a6d4aa356 Nikolay Aleksandrov 2014-01-22 4786 primary_reselect_value = valptr->value;
a549952ad323d6 Jiri Pirko 2009-09-25 4787 } else {
a549952ad323d6 Jiri Pirko 2009-09-25 4788 primary_reselect_value = BOND_PRI_RESELECT_ALWAYS;
a549952ad323d6 Jiri Pirko 2009-09-25 4789 }
a549952ad323d6 Jiri Pirko 2009-09-25 4790
3915c1e8634a32 Jay Vosburgh 2008-05-17 4791 if (fail_over_mac) {
1df6b6aa334c99 Nikolay Aleksandrov 2014-01-22 4792 bond_opt_initstr(&newval, fail_over_mac);
1df6b6aa334c99 Nikolay Aleksandrov 2014-01-22 4793 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_FAIL_OVER_MAC),
1df6b6aa334c99 Nikolay Aleksandrov 2014-01-22 4794 &newval);
1df6b6aa334c99 Nikolay Aleksandrov 2014-01-22 4795 if (!valptr) {
a4aee5c808fc5b Joe Perches 2009-12-13 4796 pr_err("Error: invalid fail_over_mac \"%s\"\n",
1df6b6aa334c99 Nikolay Aleksandrov 2014-01-22 4797 fail_over_mac);
3915c1e8634a32 Jay Vosburgh 2008-05-17 4798 return -EINVAL;
3915c1e8634a32 Jay Vosburgh 2008-05-17 4799 }
1df6b6aa334c99 Nikolay Aleksandrov 2014-01-22 4800 fail_over_mac_value = valptr->value;
3915c1e8634a32 Jay Vosburgh 2008-05-17 4801 if (bond_mode != BOND_MODE_ACTIVEBACKUP)
91565ebbcc5aea Joe Perches 2014-02-15 4802 pr_warn("Warning: fail_over_mac only affects active-backup mode\n");
3915c1e8634a32 Jay Vosburgh 2008-05-17 4803 } else {
3915c1e8634a32 Jay Vosburgh 2008-05-17 4804 fail_over_mac_value = BOND_FOM_NONE;
3915c1e8634a32 Jay Vosburgh 2008-05-17 4805 }
dd957c57c52a39 Jay Vosburgh 2007-10-09 4806
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4807 bond_opt_initstr(&newval, "default");
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4808 valptr = bond_opt_parse(
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4809 bond_opt_get(BOND_OPT_AD_ACTOR_SYS_PRIO),
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4810 &newval);
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4811 if (!valptr) {
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4812 pr_err("Error: No ad_actor_sys_prio default value");
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4813 return -EINVAL;
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4814 }
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4815 ad_actor_sys_prio = valptr->value;
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4816
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4817 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_AD_USER_PORT_KEY),
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4818 &newval);
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4819 if (!valptr) {
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4820 pr_err("Error: No ad_user_port_key default value");
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4821 return -EINVAL;
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4822 }
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4823 ad_user_port_key = valptr->value;
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4824
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4825 bond_opt_initstr(&newval, "default");
f13ad104b4e886 Nikolay Aleksandrov 2017-09-12 4826 valptr = bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB), &newval);
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4827 if (!valptr) {
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4828 pr_err("Error: No tlb_dynamic_lb default value");
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4829 return -EINVAL;
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4830 }
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4831 tlb_dynamic_lb = valptr->value;
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4832
3a7129e52766f0 dingtianhong 2013-12-21 4833 if (lp_interval == 0) {
91565ebbcc5aea Joe Perches 2014-02-15 4834 pr_warn("Warning: ip_interval must be between 1 and %d, so it was reset to %d\n",
3a7129e52766f0 dingtianhong 2013-12-21 4835 INT_MAX, BOND_ALB_DEFAULT_LP_INTERVAL);
3a7129e52766f0 dingtianhong 2013-12-21 4836 lp_interval = BOND_ALB_DEFAULT_LP_INTERVAL;
3a7129e52766f0 dingtianhong 2013-12-21 4837 }
3a7129e52766f0 dingtianhong 2013-12-21 4838
^1da177e4c3f41 Linus Torvalds 2005-04-16 4839 /* fill params struct with the proper values */
^1da177e4c3f41 Linus Torvalds 2005-04-16 4840 params->mode = bond_mode;
169a3e66637c66 Jay Vosburgh 2005-06-26 4841 params->xmit_policy = xmit_hashtype;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4842 params->miimon = miimon;
ad246c992bea6d Ben Hutchings 2011-04-26 4843 params->num_peer_notif = num_peer_notif;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4844 params->arp_interval = arp_interval;
f5b2b966f032f2 Jay Vosburgh 2006-09-22 4845 params->arp_validate = arp_validate_value;
8599b52e14a161 Veaceslav Falico 2013-06-24 4846 params->arp_all_targets = arp_all_targets_value;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4847 params->updelay = updelay;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4848 params->downdelay = downdelay;
07a4ddec3ce9b0 Vincent Bernat 2019-07-02 4849 params->peer_notif_delay = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4850 params->use_carrier = use_carrier;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4851 params->lacp_fast = lacp_fast;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4852 params->primary[0] = 0;
a549952ad323d6 Jiri Pirko 2009-09-25 4853 params->primary_reselect = primary_reselect_value;
3915c1e8634a32 Jay Vosburgh 2008-05-17 4854 params->fail_over_mac = fail_over_mac_value;
bb1d912323d5dd Andy Gospodarek 2010-06-02 4855 params->tx_queues = tx_queues;
ebd8e4977a87cb Andy Gospodarek 2010-06-02 4856 params->all_slaves_active = all_slaves_active;
c2952c314b4fe6 Flavio Leitner 2010-10-05 4857 params->resend_igmp = resend_igmp;
655f8919d549ad stephen hemminger 2011-06-22 4858 params->min_links = min_links;
3a7129e52766f0 dingtianhong 2013-12-21 4859 params->lp_interval = lp_interval;
73958329ea1fe0 Nikolay Aleksandrov 2013-11-05 4860 params->packets_per_slave = packets_per_slave;
8b426dc54cf405 Mahesh Bandewar 2017-03-08 4861 params->tlb_dynamic_lb = tlb_dynamic_lb;
6791e4661c4bd3 Mahesh Bandewar 2015-05-09 4862 params->ad_actor_sys_prio = ad_actor_sys_prio;
74514957552edd Mahesh Bandewar 2015-05-09 4863 eth_zero_addr(params->ad_actor_system);
d22a5fc0c32edc Mahesh Bandewar 2015-05-09 4864 params->ad_user_port_key = ad_user_port_key;
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4865 if (packets_per_slave > 0) {
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4866 params->reciprocal_packets_per_slave =
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4867 reciprocal_value(packets_per_slave);
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4868 } else {
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4869 /* reciprocal_packets_per_slave is unused if
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4870 * packets_per_slave is 0 or 1, just initialize it
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4871 */
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4872 params->reciprocal_packets_per_slave =
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4873 (struct reciprocal_value) { 0 };
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4874 }
809fa972fd90ff Hannes Frederic Sowa 2014-01-22 4875
^1da177e4c3f41 Linus Torvalds 2005-04-16 4876 if (primary) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 @4877 strncpy(params->primary, primary, IFNAMSIZ);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4878 params->primary[IFNAMSIZ - 1] = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4879 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4880
^1da177e4c3f41 Linus Torvalds 2005-04-16 4881 memcpy(params->arp_targets, arp_target, sizeof(arp_target));
^1da177e4c3f41 Linus Torvalds 2005-04-16 4882
^1da177e4c3f41 Linus Torvalds 2005-04-16 4883 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 4884 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4885

:::::: The code at line 4877 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip