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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux