drivers/net/bonding/bond_main.c:4877:3: warning: 'strncpy' specified bound 16 equals destination size
by kernel test robot
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...
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(a)intel.com>
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(a)redhat.com 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(a)redhat.com 2013-05-18 4690 for (arp_ip_count = 0, i = 0;
5a5c5fd48e3bcd nikolay(a)redhat.com 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(a)redhat.com 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(a)redhat.com 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(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[linux-next:master 2541/11103] drivers/scsi/qla2xxx/qla_isr.c:3443:32: sparse: sparse: incorrect type in assignment (different base types)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 07f7e57c63aaa2afb4ea31edef05e08699a63a00
commit: a04658594399e1fa25f984601b77ee840e6aaf01 [2541/11103] scsi: qla2xxx: Wait for ABTS response on I/O timeouts for NVMe
config: powerpc64-randconfig-s031-20210214 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-215-g0fb77bb6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout a04658594399e1fa25f984601b77ee840e6aaf01
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
>> drivers/scsi/qla2xxx/qla_isr.c:3443:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] comp_status @@ got int @@
drivers/scsi/qla2xxx/qla_isr.c:3443:32: sparse: expected restricted __le16 [usertype] comp_status
drivers/scsi/qla2xxx/qla_isr.c:3443:32: sparse: got int
vim +3443 drivers/scsi/qla2xxx/qla_isr.c
3428
3429 static void
3430 qla24xx_abort_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
3431 struct abort_entry_24xx *pkt)
3432 {
3433 const char func[] = "ABT_IOCB";
3434 srb_t *sp;
3435 srb_t *orig_sp = NULL;
3436 struct srb_iocb *abt;
3437
3438 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
3439 if (!sp)
3440 return;
3441
3442 abt = &sp->u.iocb_cmd;
> 3443 abt->u.abt.comp_status = le16_to_cpu(pkt->comp_status);
3444 orig_sp = sp->cmd_sp;
3445 /* Need to pass original sp */
3446 if (orig_sp)
3447 qla_nvme_abort_process_comp_status(pkt, orig_sp);
3448
3449 sp->done(sp, 0);
3450 }
3451
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
arch/alpha/lib/csum_partial_copy.c:328:1: error: no previous prototype for 'csum_and_copy_from_user'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 291009f656e8eaebbdfd3a8d99f6b190a9ce9deb
commit: 808b49da54e640cba5c5c92dee658018a529226b alpha: turn csum_partial_copy_from_user() into csum_and_copy_from_user()
date: 9 months ago
config: alpha-defconfig (attached as .config)
compiler: alpha-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...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 808b49da54e640cba5c5c92dee658018a529226b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> arch/alpha/lib/csum_partial_copy.c:328:1: error: no previous prototype for 'csum_and_copy_from_user' [-Werror=missing-prototypes]
328 | csum_and_copy_from_user(const void __user *src, void *dst, int len,
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/alpha/lib/csum_partial_copy.c:375:1: error: no previous prototype for 'csum_partial_copy_nocheck' [-Werror=missing-prototypes]
375 | csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/csum_and_copy_from_user +328 arch/alpha/lib/csum_partial_copy.c
326
327 __wsum
> 328 csum_and_copy_from_user(const void __user *src, void *dst, int len,
329 __wsum sum, int *errp)
330 {
331 unsigned long checksum = (__force u32) sum;
332 unsigned long soff = 7 & (unsigned long) src;
333 unsigned long doff = 7 & (unsigned long) dst;
334
335 if (len) {
336 if (!access_ok(src, len)) {
337 if (errp) *errp = -EFAULT;
338 memset(dst, 0, len);
339 return sum;
340 }
341 if (!doff) {
342 if (!soff)
343 checksum = csum_partial_cfu_aligned(
344 (const unsigned long __user *) src,
345 (unsigned long *) dst,
346 len-8, checksum, errp);
347 else
348 checksum = csum_partial_cfu_dest_aligned(
349 (const unsigned long __user *) src,
350 (unsigned long *) dst,
351 soff, len-8, checksum, errp);
352 } else {
353 unsigned long partial_dest;
354 ldq_u(partial_dest, dst);
355 if (!soff)
356 checksum = csum_partial_cfu_src_aligned(
357 (const unsigned long __user *) src,
358 (unsigned long *) dst,
359 doff, len-8, checksum,
360 partial_dest, errp);
361 else
362 checksum = csum_partial_cfu_unaligned(
363 (const unsigned long __user *) src,
364 (unsigned long *) dst,
365 soff, doff, len-8, checksum,
366 partial_dest, errp);
367 }
368 checksum = from64to16 (checksum);
369 }
370 return (__force __wsum)checksum;
371 }
372 EXPORT_SYMBOL(csum_and_copy_from_user);
373
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
Re: [PATCH v5 13/19] remoteproc: Properly deal with the resource table (fwd)
by Julia Lawall
There are identical kfrees on lines 2078 and 2080.
julia
---------- Forwarded message ----------
Date: Fri, 12 Feb 2021 10:45:50 +0800
From: kernel test robot <lkp(a)intel.com>
To: kbuild(a)lists.01.org
Cc: lkp(a)intel.com, Julia Lawall <julia.lawall(a)lip6.fr>
Subject: Re: [PATCH v5 13/19] remoteproc: Properly deal with the resource table
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210211234627.2669674-14-mathieu.poirier(a)linaro.org>
References: <20210211234627.2669674-14-mathieu.poirier(a)linaro.org>
TO: Mathieu Poirier <mathieu.poirier(a)linaro.org>
TO: ohad(a)wizery.com
TO: bjorn.andersson(a)linaro.org
TO: arnaud.pouliquen(a)st.com
CC: robh+dt(a)kernel.org
CC: mcoquelin.stm32(a)gmail.com
CC: alexandre.torgue(a)st.com
CC: linux-remoteproc(a)vger.kernel.org
CC: devicetree(a)vger.kernel.org
CC: linux-kernel(a)vger.kernel.org
CC: linux-arm-kernel(a)lists.infradead.org
Hi Mathieu,
I love your patch! Perhaps something to improve:
[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v5.11-rc7 next-20210211]
[cannot apply to remoteproc/for-next rpmsg/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Mathieu-Poirier/remoteproc-Add-s...
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
:::::: branch date: 3 hours ago
:::::: commit date: 3 hours ago
config: openrisc-randconfig-c003-20210209 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Julia Lawall <julia.lawall(a)lip6.fr>
"coccinelle warnings: (new ones prefixed by >>)"
>> drivers/remoteproc/remoteproc_core.c:2080:7-26: ERROR: reference preceded by free on line 2078
vim +2080 drivers/remoteproc/remoteproc_core.c
400e64df6b237e Ohad Ben-Cohen 2011-10-20 2012
eab58da78fe46f Mathieu Poirier 2021-02-11 2013 /**
eab58da78fe46f Mathieu Poirier 2021-02-11 2014 * rproc_detach() - Detach the remote processor from the
eab58da78fe46f Mathieu Poirier 2021-02-11 2015 * remoteproc core
eab58da78fe46f Mathieu Poirier 2021-02-11 2016 *
eab58da78fe46f Mathieu Poirier 2021-02-11 2017 * @rproc: the remote processor
eab58da78fe46f Mathieu Poirier 2021-02-11 2018 *
eab58da78fe46f Mathieu Poirier 2021-02-11 2019 * Detach a remote processor (previously attached to with rproc_attach()).
eab58da78fe46f Mathieu Poirier 2021-02-11 2020 *
eab58da78fe46f Mathieu Poirier 2021-02-11 2021 * In case @rproc is still being used by an additional user(s), then
eab58da78fe46f Mathieu Poirier 2021-02-11 2022 * this function will just decrement the power refcount and exit,
eab58da78fe46f Mathieu Poirier 2021-02-11 2023 * without disconnecting the device.
eab58da78fe46f Mathieu Poirier 2021-02-11 2024 *
eab58da78fe46f Mathieu Poirier 2021-02-11 2025 * Function rproc_detach() calls __rproc_detach() in order to let a remote
eab58da78fe46f Mathieu Poirier 2021-02-11 2026 * processor know that services provided by the application processor are
eab58da78fe46f Mathieu Poirier 2021-02-11 2027 * no longer available. From there it should be possible to remove the
eab58da78fe46f Mathieu Poirier 2021-02-11 2028 * platform driver and even power cycle the application processor (if the HW
eab58da78fe46f Mathieu Poirier 2021-02-11 2029 * supports it) without needing to switch off the remote processor.
eab58da78fe46f Mathieu Poirier 2021-02-11 2030 */
eab58da78fe46f Mathieu Poirier 2021-02-11 2031 int rproc_detach(struct rproc *rproc)
eab58da78fe46f Mathieu Poirier 2021-02-11 2032 {
eab58da78fe46f Mathieu Poirier 2021-02-11 2033 struct device *dev = &rproc->dev;
eab58da78fe46f Mathieu Poirier 2021-02-11 2034 int ret;
eab58da78fe46f Mathieu Poirier 2021-02-11 2035
eab58da78fe46f Mathieu Poirier 2021-02-11 2036 ret = mutex_lock_interruptible(&rproc->lock);
eab58da78fe46f Mathieu Poirier 2021-02-11 2037 if (ret) {
eab58da78fe46f Mathieu Poirier 2021-02-11 2038 dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
eab58da78fe46f Mathieu Poirier 2021-02-11 2039 return ret;
eab58da78fe46f Mathieu Poirier 2021-02-11 2040 }
eab58da78fe46f Mathieu Poirier 2021-02-11 2041
eab58da78fe46f Mathieu Poirier 2021-02-11 2042 if (rproc->state != RPROC_RUNNING && rproc->state != RPROC_ATTACHED) {
eab58da78fe46f Mathieu Poirier 2021-02-11 2043 ret = -EPERM;
eab58da78fe46f Mathieu Poirier 2021-02-11 2044 goto out;
eab58da78fe46f Mathieu Poirier 2021-02-11 2045 }
eab58da78fe46f Mathieu Poirier 2021-02-11 2046
eab58da78fe46f Mathieu Poirier 2021-02-11 2047 /* if the remote proc is still needed, bail out */
eab58da78fe46f Mathieu Poirier 2021-02-11 2048 if (!atomic_dec_and_test(&rproc->power)) {
eab58da78fe46f Mathieu Poirier 2021-02-11 2049 ret = -EBUSY;
eab58da78fe46f Mathieu Poirier 2021-02-11 2050 goto out;
eab58da78fe46f Mathieu Poirier 2021-02-11 2051 }
eab58da78fe46f Mathieu Poirier 2021-02-11 2052
eab58da78fe46f Mathieu Poirier 2021-02-11 2053 ret = __rproc_detach(rproc);
eab58da78fe46f Mathieu Poirier 2021-02-11 2054 if (ret) {
eab58da78fe46f Mathieu Poirier 2021-02-11 2055 atomic_inc(&rproc->power);
eab58da78fe46f Mathieu Poirier 2021-02-11 2056 goto out;
eab58da78fe46f Mathieu Poirier 2021-02-11 2057 }
eab58da78fe46f Mathieu Poirier 2021-02-11 2058
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2059 /*
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2060 * Install a clean resource table for re-attach while
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2061 * rproc->table_ptr is still valid.
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2062 */
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2063 ret = rproc_reset_loaded_rsc_table(rproc);
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2064 if (ret) {
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2065 atomic_inc(&rproc->power);
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2066 goto out;
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2067 }
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2068
eab58da78fe46f Mathieu Poirier 2021-02-11 2069 /* clean up all acquired resources */
eab58da78fe46f Mathieu Poirier 2021-02-11 2070 rproc_resource_cleanup(rproc);
eab58da78fe46f Mathieu Poirier 2021-02-11 2071
eab58da78fe46f Mathieu Poirier 2021-02-11 2072 /* release HW resources if needed */
eab58da78fe46f Mathieu Poirier 2021-02-11 2073 rproc_unprepare_device(rproc);
eab58da78fe46f Mathieu Poirier 2021-02-11 2074
eab58da78fe46f Mathieu Poirier 2021-02-11 2075 rproc_disable_iommu(rproc);
eab58da78fe46f Mathieu Poirier 2021-02-11 2076
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2077 /* Free the copy of the resource table */
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 @2078 kfree(rproc->cached_table);
eab58da78fe46f Mathieu Poirier 2021-02-11 2079 /* Follow the same sequence as in rproc_shutdown() */
eab58da78fe46f Mathieu Poirier 2021-02-11 @2080 kfree(rproc->cached_table);
eab58da78fe46f Mathieu Poirier 2021-02-11 2081 rproc->cached_table = NULL;
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2082 rproc->clean_table = NULL;
eab58da78fe46f Mathieu Poirier 2021-02-11 2083 rproc->table_ptr = NULL;
66e2fed7a4bb20 Mathieu Poirier 2021-02-11 2084
eab58da78fe46f Mathieu Poirier 2021-02-11 2085 out:
eab58da78fe46f Mathieu Poirier 2021-02-11 2086 mutex_unlock(&rproc->lock);
eab58da78fe46f Mathieu Poirier 2021-02-11 2087 return ret;
eab58da78fe46f Mathieu Poirier 2021-02-11 2088 }
eab58da78fe46f Mathieu Poirier 2021-02-11 2089 EXPORT_SYMBOL(rproc_detach);
eab58da78fe46f Mathieu Poirier 2021-02-11 2090
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:122:11: warning: missing braces around initializer
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 358feceebbf68f33c44c6650d14455389e65282d
commit: 20f2ffe504728612d7b0c34e4f8280e34251e704 drm/amdgpu: fold CONFIG_DRM_AMD_DC_DCN3* into CONFIG_DRM_AMD_DC_DCN (v3)
date: 3 months ago
config: i386-randconfig-a014-20200624 (attached as .config)
compiler: gcc-4.9 (Ubuntu 4.9.3-13ubuntu2) 4.9.3
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 20f2ffe504728612d7b0c34e4f8280e34251e704
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:96:6: warning: no previous prototype for 'vg_update_clocks' [-Wmissing-prototypes]
void vg_update_clocks(struct clk_mgr *clk_mgr_base,
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c: In function 'vg_update_clocks':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:122:11: warning: missing braces around initializer [-Wmissing-braces]
union display_idle_optimization_u idle_info = { 0 };
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:122:11: warning: (near initialization for 'idle_info.idle_info') [-Wmissing-braces]
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:135:10: warning: missing braces around initializer [-Wmissing-braces]
union display_idle_optimization_u idle_info = { 0 };
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:135:10: warning: (near initialization for 'idle_info.idle_info') [-Wmissing-braces]
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c: At top level:
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:375:6: warning: no previous prototype for 'vg_get_clk_states' [-Wmissing-prototypes]
void vg_get_clk_states(struct clk_mgr *clk_mgr_base, struct clk_states *s)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:393:6: warning: no previous prototype for 'vg_init_clocks' [-Wmissing-prototypes]
void vg_init_clocks(struct clk_mgr *clk_mgr)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:710:15: warning: missing braces around initializer [-Wmissing-braces]
static struct watermarks dummy_wms = { 0 };
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:710:15: warning: (near initialization for 'dummy_wms.WatermarkRow') [-Wmissing-braces]
--
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.c:91:5: warning: no previous prototype for 'dcn301_smu_send_msg_with_param' [-Wmissing-prototypes]
int dcn301_smu_send_msg_with_param(
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.c: In function 'dcn301_smu_enable_phy_refclk_pwrdwn':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.c:198:8: warning: missing braces around initializer [-Wmissing-braces]
union display_idle_optimization_u idle_info = { 0 };
^
drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.c:198:8: warning: (near initialization for 'idle_info.idle_info') [-Wmissing-braces]
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c: In function 'dcn30_mmhubbub_warmup':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c:264:9: warning: missing braces around initializer [-Wmissing-braces]
struct mcif_warmup_params warmup_params = {0};
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c:264:9: warning: (near initialization for 'warmup_params.start_address') [-Wmissing-braces]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c: In function 'dcn30_enable_writeback':
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c:322:27: warning: variable 'optc' set but not used [-Wunused-but-set-variable]
struct timing_generator *optc;
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c: In function 'dcn30_update_info_frame':
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c:654:7: warning: variable 'is_dp' set but not used [-Wunused-but-set-variable]
bool is_dp;
^
--
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:447:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(0),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:447:2: warning: (near initialization for 'stream_enc_regs[0].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:447:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:447:2: warning: (near initialization for 'stream_enc_regs[0].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:447:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:447:2: warning: (near initialization for 'stream_enc_regs[0].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:448:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:448:2: warning: (near initialization for 'stream_enc_regs[1].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:448:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:448:2: warning: (near initialization for 'stream_enc_regs[1].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:448:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:448:2: warning: (near initialization for 'stream_enc_regs[1].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:449:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(2),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:449:2: warning: (near initialization for 'stream_enc_regs[2].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:449:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:449:2: warning: (near initialization for 'stream_enc_regs[2].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:449:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:449:2: warning: (near initialization for 'stream_enc_regs[2].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:450:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(3),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:450:2: warning: (near initialization for 'stream_enc_regs[3].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:450:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:450:2: warning: (near initialization for 'stream_enc_regs[3].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:450:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:450:2: warning: (near initialization for 'stream_enc_regs[3].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:451:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(4),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:451:2: warning: (near initialization for 'stream_enc_regs[4].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:451:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:451:2: warning: (near initialization for 'stream_enc_regs[4].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:451:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:451:2: warning: (near initialization for 'stream_enc_regs[4].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:452:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(5)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:452:2: warning: (near initialization for 'stream_enc_regs[5].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:452:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:452:2: warning: (near initialization for 'stream_enc_regs[5].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:452:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:452:2: warning: (near initialization for 'stream_enc_regs[5].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:501:2: warning: initialized field overwritten [-Woverride-init]
DCN_AUX_MASK_SH_LIST(__SHIFT)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:501:2: warning: (near initialization for 'aux_shift.AUX_SW_AUTOINCREMENT_DISABLE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:505:2: warning: initialized field overwritten [-Woverride-init]
DCN_AUX_MASK_SH_LIST(_MASK)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:505:2: warning: (near initialization for 'aux_mask.AUX_SW_AUTOINCREMENT_DISABLE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:509:2: warning: initialized field overwritten [-Woverride-init]
link_regs(0, A),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:509:2: warning: (near initialization for 'link_enc_regs[0].TMDS_CTL_BITS') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:510:2: warning: initialized field overwritten [-Woverride-init]
link_regs(1, B),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:510:2: warning: (near initialization for 'link_enc_regs[1].TMDS_CTL_BITS') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:511:2: warning: initialized field overwritten [-Woverride-init]
link_regs(2, C),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:511:2: warning: (near initialization for 'link_enc_regs[2].TMDS_CTL_BITS') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:512:2: warning: initialized field overwritten [-Woverride-init]
link_regs(3, D),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:512:2: warning: (near initialization for 'link_enc_regs[3].TMDS_CTL_BITS') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:513:2: warning: initialized field overwritten [-Woverride-init]
link_regs(4, E),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:513:2: warning: (near initialization for 'link_enc_regs[4].TMDS_CTL_BITS') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:514:2: warning: initialized field overwritten [-Woverride-init]
link_regs(5, F)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:514:2: warning: (near initialization for 'link_enc_regs[5].TMDS_CTL_BITS') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:518:2: warning: initialized field overwritten [-Woverride-init]
LINK_ENCODER_MASK_SH_LIST_DCN30(__SHIFT),\
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:518:2: warning: (near initialization for 'le_shift.TMDS_CTL0') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:523:2: warning: initialized field overwritten [-Woverride-init]
LINK_ENCODER_MASK_SH_LIST_DCN30(_MASK),\
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:523:2: warning: (near initialization for 'le_mask.TMDS_CTL0') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:546:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(0),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:546:2: warning: (near initialization for 'dpp_regs[0].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:546:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:546:2: warning: (near initialization for 'dpp_regs[0].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:546:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:546:2: warning: (near initialization for 'dpp_regs[0].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:547:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:547:2: warning: (near initialization for 'dpp_regs[1].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:547:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:547:2: warning: (near initialization for 'dpp_regs[1].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:547:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:547:2: warning: (near initialization for 'dpp_regs[1].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_resource.c:548:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(2),
^
--
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:447:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(0),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:447:2: warning: (near initialization for 'stream_enc_regs[0].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:447:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:447:2: warning: (near initialization for 'stream_enc_regs[0].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:447:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:447:2: warning: (near initialization for 'stream_enc_regs[0].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:448:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:448:2: warning: (near initialization for 'stream_enc_regs[1].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:448:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:448:2: warning: (near initialization for 'stream_enc_regs[1].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:448:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:448:2: warning: (near initialization for 'stream_enc_regs[1].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:449:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(2),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:449:2: warning: (near initialization for 'stream_enc_regs[2].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:449:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:449:2: warning: (near initialization for 'stream_enc_regs[2].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:449:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:449:2: warning: (near initialization for 'stream_enc_regs[2].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:450:2: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(3),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:450:2: warning: (near initialization for 'stream_enc_regs[3].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:450:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:450:2: warning: (near initialization for 'stream_enc_regs[3].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:450:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:450:2: warning: (near initialization for 'stream_enc_regs[3].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:493:2: warning: initialized field overwritten [-Woverride-init]
DCN_AUX_MASK_SH_LIST(__SHIFT)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:493:2: warning: (near initialization for 'aux_shift.AUX_SW_AUTOINCREMENT_DISABLE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:497:2: warning: initialized field overwritten [-Woverride-init]
DCN_AUX_MASK_SH_LIST(_MASK)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:497:2: warning: (near initialization for 'aux_mask.AUX_SW_AUTOINCREMENT_DISABLE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:508:2: warning: initialized field overwritten [-Woverride-init]
LINK_ENCODER_MASK_SH_LIST_DCN301(__SHIFT)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:508:2: warning: (near initialization for 'le_shift.TMDS_CTL0') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:512:2: warning: initialized field overwritten [-Woverride-init]
LINK_ENCODER_MASK_SH_LIST_DCN301(_MASK)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:512:2: warning: (near initialization for 'le_mask.TMDS_CTL0') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:539:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(0),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:539:2: warning: (near initialization for 'dpp_regs[0].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:539:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:539:2: warning: (near initialization for 'dpp_regs[0].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:539:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:539:2: warning: (near initialization for 'dpp_regs[0].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:540:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:540:2: warning: (near initialization for 'dpp_regs[1].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:540:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:540:2: warning: (near initialization for 'dpp_regs[1].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:540:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:540:2: warning: (near initialization for 'dpp_regs[1].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:541:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(2),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:541:2: warning: (near initialization for 'dpp_regs[2].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:541:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:541:2: warning: (near initialization for 'dpp_regs[2].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:541:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:541:2: warning: (near initialization for 'dpp_regs[2].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:542:2: warning: initialized field overwritten [-Woverride-init]
dpp_regs(3),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:542:2: warning: (near initialization for 'dpp_regs[3].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:542:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:542:2: warning: (near initialization for 'dpp_regs[3].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:542:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:542:2: warning: (near initialization for 'dpp_regs[3].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:546:3: warning: initialized field overwritten [-Woverride-init]
DPP_REG_LIST_SH_MASK_DCN30(__SHIFT)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:546:3: warning: (near initialization for 'tf_shift.CM_3DLUT_MODE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:550:3: warning: initialized field overwritten [-Woverride-init]
DPP_REG_LIST_SH_MASK_DCN30(_MASK)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:550:3: warning: (near initialization for 'tf_mask.CM_3DLUT_MODE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:634:2: warning: initialized field overwritten [-Woverride-init]
DSC_REG_LIST_SH_MASK_DCN20(__SHIFT)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:634:2: warning: (near initialization for 'dsc_shift.PIC_WIDTH') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:634:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:634:2: warning: (near initialization for 'dsc_shift.PIC_HEIGHT') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:638:2: warning: initialized field overwritten [-Woverride-init]
DSC_REG_LIST_SH_MASK_DCN20(_MASK)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:638:2: warning: (near initialization for 'dsc_mask.PIC_WIDTH') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:638:2: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:638:2: warning: (near initialization for 'dsc_mask.PIC_HEIGHT') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:647:3: warning: initialized field overwritten [-Woverride-init]
MPC_OUT_MUX_REG_LIST_DCN3_0(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:647:3: warning: (near initialization for 'mpc_regs.MPC_OUT_CSC_COEF_FORMAT') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn301/dcn301_resource.c:648:3: warning: initialized field overwritten [-Woverride-init]
MPC_OUT_MUX_REG_LIST_DCN3_0(2),
^
--
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:505:3: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(0),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:505:3: warning: (near initialization for 'stream_enc_regs[0].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:505:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:505:3: warning: (near initialization for 'stream_enc_regs[0].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:505:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:505:3: warning: (near initialization for 'stream_enc_regs[0].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:506:3: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:506:3: warning: (near initialization for 'stream_enc_regs[1].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:506:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:506:3: warning: (near initialization for 'stream_enc_regs[1].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:506:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:506:3: warning: (near initialization for 'stream_enc_regs[1].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:507:3: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(2),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:507:3: warning: (near initialization for 'stream_enc_regs[2].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:507:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:507:3: warning: (near initialization for 'stream_enc_regs[2].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:507:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:507:3: warning: (near initialization for 'stream_enc_regs[2].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:508:3: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(3),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:508:3: warning: (near initialization for 'stream_enc_regs[3].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:508:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:508:3: warning: (near initialization for 'stream_enc_regs[3].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:508:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:508:3: warning: (near initialization for 'stream_enc_regs[3].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:509:3: warning: initialized field overwritten [-Woverride-init]
stream_enc_regs(4)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:509:3: warning: (near initialization for 'stream_enc_regs[4].DP_SEC_METADATA_TRANSMISSION') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:509:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:509:3: warning: (near initialization for 'stream_enc_regs[4].HDMI_METADATA_PACKET_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:509:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:509:3: warning: (near initialization for 'stream_enc_regs[4].DIG_FE_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:585:3: warning: initialized field overwritten [-Woverride-init]
HWSEQ_DCN302_REG_LIST()
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:585:3: warning: (near initialization for 'hwseq_reg.DCFCLK_CNTL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: initialized field overwritten [-Woverride-init]
HUBP_MASK_SH_LIST_DCN30(__SHIFT)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: (near initialization for 'hubp_shift.REFCYC_PER_REQ_DELIVERY') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: (near initialization for 'hubp_shift.QoS_LEVEL_FIXED') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: (near initialization for 'hubp_shift.QoS_RAMP_DISABLE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:621:3: warning: (near initialization for 'hubp_shift.REFCYC_PER_REQ_DELIVERY_PRE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: initialized field overwritten [-Woverride-init]
HUBP_MASK_SH_LIST_DCN30(_MASK)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: (near initialization for 'hubp_mask.REFCYC_PER_REQ_DELIVERY') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: (near initialization for 'hubp_mask.QoS_LEVEL_FIXED') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: (near initialization for 'hubp_mask.QoS_RAMP_DISABLE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:625:3: warning: (near initialization for 'hubp_mask.REFCYC_PER_REQ_DELIVERY_PRE') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:647:3: warning: initialized field overwritten [-Woverride-init]
dpp_regs(0),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:647:3: warning: (near initialization for 'dpp_regs[0].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:647:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:647:3: warning: (near initialization for 'dpp_regs[0].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:647:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:647:3: warning: (near initialization for 'dpp_regs[0].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:648:3: warning: initialized field overwritten [-Woverride-init]
dpp_regs(1),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:648:3: warning: (near initialization for 'dpp_regs[1].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:648:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:648:3: warning: (near initialization for 'dpp_regs[1].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:648:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:648:3: warning: (near initialization for 'dpp_regs[1].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:649:3: warning: initialized field overwritten [-Woverride-init]
dpp_regs(2),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:649:3: warning: (near initialization for 'dpp_regs[2].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:649:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:649:3: warning: (near initialization for 'dpp_regs[2].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:649:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:649:3: warning: (near initialization for 'dpp_regs[2].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:650:3: warning: initialized field overwritten [-Woverride-init]
dpp_regs(3),
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:650:3: warning: (near initialization for 'dpp_regs[3].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:650:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:650:3: warning: (near initialization for 'dpp_regs[3].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:650:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:650:3: warning: (near initialization for 'dpp_regs[3].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:651:3: warning: initialized field overwritten [-Woverride-init]
dpp_regs(4)
^
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:651:3: warning: (near initialization for 'dpp_regs[4].CM_GAMCOR_LUT_INDEX') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:651:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:651:3: warning: (near initialization for 'dpp_regs[4].CURSOR_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:651:3: warning: initialized field overwritten [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:651:3: warning: (near initialization for 'dpp_regs[4].CM_BLNDGAM_CONTROL') [-Woverride-init]
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn302/dcn302_resource.c:655:3: warning: initialized field overwritten [-Woverride-init]
DPP_REG_LIST_SH_MASK_DCN30(__SHIFT)
^
vim +122 drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c
3a83e4e64bb152 Roman Li 2020-09-29 95
3a83e4e64bb152 Roman Li 2020-09-29 96 void vg_update_clocks(struct clk_mgr *clk_mgr_base,
3a83e4e64bb152 Roman Li 2020-09-29 97 struct dc_state *context,
3a83e4e64bb152 Roman Li 2020-09-29 98 bool safe_to_lower)
3a83e4e64bb152 Roman Li 2020-09-29 99 {
3a83e4e64bb152 Roman Li 2020-09-29 100 struct clk_mgr_internal *clk_mgr = TO_CLK_MGR_INTERNAL(clk_mgr_base);
3a83e4e64bb152 Roman Li 2020-09-29 101 struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;
3a83e4e64bb152 Roman Li 2020-09-29 102 struct dc *dc = clk_mgr_base->ctx->dc;
3a83e4e64bb152 Roman Li 2020-09-29 103 int display_count;
3a83e4e64bb152 Roman Li 2020-09-29 104 bool update_dppclk = false;
3a83e4e64bb152 Roman Li 2020-09-29 105 bool update_dispclk = false;
3a83e4e64bb152 Roman Li 2020-09-29 106 bool dpp_clock_lowered = false;
3a83e4e64bb152 Roman Li 2020-09-29 107
3a83e4e64bb152 Roman Li 2020-09-29 108 if (dc->work_arounds.skip_clock_update)
3a83e4e64bb152 Roman Li 2020-09-29 109 return;
3a83e4e64bb152 Roman Li 2020-09-29 110
3a83e4e64bb152 Roman Li 2020-09-29 111 /*
3a83e4e64bb152 Roman Li 2020-09-29 112 * if it is safe to lower, but we are already in the lower state, we don't have to do anything
3a83e4e64bb152 Roman Li 2020-09-29 113 * also if safe to lower is false, we just go in the higher state
3a83e4e64bb152 Roman Li 2020-09-29 114 */
3a83e4e64bb152 Roman Li 2020-09-29 115 if (safe_to_lower) {
3a83e4e64bb152 Roman Li 2020-09-29 116 /* check that we're not already in lower */
3a83e4e64bb152 Roman Li 2020-09-29 117 if (clk_mgr_base->clks.pwr_state != DCN_PWR_STATE_LOW_POWER) {
3a83e4e64bb152 Roman Li 2020-09-29 118
3a83e4e64bb152 Roman Li 2020-09-29 119 display_count = vg_get_active_display_cnt_wa(dc, context);
3a83e4e64bb152 Roman Li 2020-09-29 120 /* if we can go lower, go lower */
3a83e4e64bb152 Roman Li 2020-09-29 121 if (display_count == 0) {
3a83e4e64bb152 Roman Li 2020-09-29 @122 union display_idle_optimization_u idle_info = { 0 };
3a83e4e64bb152 Roman Li 2020-09-29 123
3a83e4e64bb152 Roman Li 2020-09-29 124 idle_info.idle_info.df_request_disabled = 1;
3a83e4e64bb152 Roman Li 2020-09-29 125 idle_info.idle_info.phy_ref_clk_off = 1;
3a83e4e64bb152 Roman Li 2020-09-29 126
3a83e4e64bb152 Roman Li 2020-09-29 127 dcn301_smu_set_display_idle_optimization(clk_mgr, idle_info.data);
3a83e4e64bb152 Roman Li 2020-09-29 128 /* update power state */
3a83e4e64bb152 Roman Li 2020-09-29 129 clk_mgr_base->clks.pwr_state = DCN_PWR_STATE_LOW_POWER;
3a83e4e64bb152 Roman Li 2020-09-29 130 }
3a83e4e64bb152 Roman Li 2020-09-29 131 }
3a83e4e64bb152 Roman Li 2020-09-29 132 } else {
3a83e4e64bb152 Roman Li 2020-09-29 133 /* check that we're not already in D0 */
3a83e4e64bb152 Roman Li 2020-09-29 134 if (clk_mgr_base->clks.pwr_state != DCN_PWR_STATE_MISSION_MODE) {
3a83e4e64bb152 Roman Li 2020-09-29 135 union display_idle_optimization_u idle_info = { 0 };
3a83e4e64bb152 Roman Li 2020-09-29 136
3a83e4e64bb152 Roman Li 2020-09-29 137 dcn301_smu_set_display_idle_optimization(clk_mgr, idle_info.data);
3a83e4e64bb152 Roman Li 2020-09-29 138 /* update power state */
3a83e4e64bb152 Roman Li 2020-09-29 139 clk_mgr_base->clks.pwr_state = DCN_PWR_STATE_MISSION_MODE;
3a83e4e64bb152 Roman Li 2020-09-29 140 }
3a83e4e64bb152 Roman Li 2020-09-29 141 }
3a83e4e64bb152 Roman Li 2020-09-29 142
3a83e4e64bb152 Roman Li 2020-09-29 143 if (should_set_clock(safe_to_lower, new_clocks->dcfclk_khz, clk_mgr_base->clks.dcfclk_khz)) {
3a83e4e64bb152 Roman Li 2020-09-29 144 clk_mgr_base->clks.dcfclk_khz = new_clocks->dcfclk_khz;
3a83e4e64bb152 Roman Li 2020-09-29 145 dcn301_smu_set_hard_min_dcfclk(clk_mgr, clk_mgr_base->clks.dcfclk_khz);
3a83e4e64bb152 Roman Li 2020-09-29 146 }
3a83e4e64bb152 Roman Li 2020-09-29 147
3a83e4e64bb152 Roman Li 2020-09-29 148 if (should_set_clock(safe_to_lower,
3a83e4e64bb152 Roman Li 2020-09-29 149 new_clocks->dcfclk_deep_sleep_khz, clk_mgr_base->clks.dcfclk_deep_sleep_khz)) {
3a83e4e64bb152 Roman Li 2020-09-29 150 clk_mgr_base->clks.dcfclk_deep_sleep_khz = new_clocks->dcfclk_deep_sleep_khz;
3a83e4e64bb152 Roman Li 2020-09-29 151 dcn301_smu_set_min_deep_sleep_dcfclk(clk_mgr, clk_mgr_base->clks.dcfclk_deep_sleep_khz);
3a83e4e64bb152 Roman Li 2020-09-29 152 }
3a83e4e64bb152 Roman Li 2020-09-29 153
3a83e4e64bb152 Roman Li 2020-09-29 154 // workaround: Limit dppclk to 100Mhz to avoid lower eDP panel switch to plus 4K monitor underflow.
3a83e4e64bb152 Roman Li 2020-09-29 155 if (!IS_DIAG_DC(dc->ctx->dce_environment)) {
3a83e4e64bb152 Roman Li 2020-09-29 156 if (new_clocks->dppclk_khz < 100000)
3a83e4e64bb152 Roman Li 2020-09-29 157 new_clocks->dppclk_khz = 100000;
3a83e4e64bb152 Roman Li 2020-09-29 158 }
3a83e4e64bb152 Roman Li 2020-09-29 159
3a83e4e64bb152 Roman Li 2020-09-29 160 if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) {
3a83e4e64bb152 Roman Li 2020-09-29 161 if (clk_mgr->base.clks.dppclk_khz > new_clocks->dppclk_khz)
3a83e4e64bb152 Roman Li 2020-09-29 162 dpp_clock_lowered = true;
3a83e4e64bb152 Roman Li 2020-09-29 163 clk_mgr_base->clks.dppclk_khz = new_clocks->dppclk_khz;
3a83e4e64bb152 Roman Li 2020-09-29 164 update_dppclk = true;
3a83e4e64bb152 Roman Li 2020-09-29 165 }
3a83e4e64bb152 Roman Li 2020-09-29 166
3a83e4e64bb152 Roman Li 2020-09-29 167 if (should_set_clock(safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)) {
3a83e4e64bb152 Roman Li 2020-09-29 168 clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz;
3a83e4e64bb152 Roman Li 2020-09-29 169 dcn301_smu_set_dispclk(clk_mgr, clk_mgr_base->clks.dispclk_khz);
3a83e4e64bb152 Roman Li 2020-09-29 170
3a83e4e64bb152 Roman Li 2020-09-29 171 update_dispclk = true;
3a83e4e64bb152 Roman Li 2020-09-29 172 }
3a83e4e64bb152 Roman Li 2020-09-29 173
3a83e4e64bb152 Roman Li 2020-09-29 174 if (dpp_clock_lowered) {
3a83e4e64bb152 Roman Li 2020-09-29 175 // increase per DPP DTO before lowering global dppclk
3a83e4e64bb152 Roman Li 2020-09-29 176 dcn20_update_clocks_update_dpp_dto(clk_mgr, context, safe_to_lower);
3a83e4e64bb152 Roman Li 2020-09-29 177 dcn301_smu_set_dppclk(clk_mgr, clk_mgr_base->clks.dppclk_khz);
3a83e4e64bb152 Roman Li 2020-09-29 178 } else {
3a83e4e64bb152 Roman Li 2020-09-29 179 // increase global DPPCLK before lowering per DPP DTO
3a83e4e64bb152 Roman Li 2020-09-29 180 if (update_dppclk || update_dispclk)
3a83e4e64bb152 Roman Li 2020-09-29 181 dcn301_smu_set_dppclk(clk_mgr, clk_mgr_base->clks.dppclk_khz);
3a83e4e64bb152 Roman Li 2020-09-29 182 // always update dtos unless clock is lowered and not safe to lower
3a83e4e64bb152 Roman Li 2020-09-29 183 if (new_clocks->dppclk_khz >= dc->current_state->bw_ctx.bw.dcn.clk.dppclk_khz)
3a83e4e64bb152 Roman Li 2020-09-29 184 dcn20_update_clocks_update_dpp_dto(clk_mgr, context, safe_to_lower);
3a83e4e64bb152 Roman Li 2020-09-29 185 }
3a83e4e64bb152 Roman Li 2020-09-29 186 }
3a83e4e64bb152 Roman Li 2020-09-29 187
:::::: The code at line 122 was first introduced by commit
:::::: 3a83e4e64bb1522ddac67ffc787d1c38291e1a65 drm/amd/display: Add dcn3.01 support to DC (v2)
:::::: TO: Roman Li <Roman.Li(a)amd.com>
:::::: CC: Alex Deucher <alexander.deucher(a)amd.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[clk:clk-qcom 27/42] drivers/clk/qcom/gpucc-msm8998.c:265:45: error: 'NO_RET_PERIPH' undeclared here (not in a function)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-qcom
head: 27aef2b9462a57798e9bc54bf471ed39cf60117a
commit: 1e40c64b4026021a11bba22253741bb40141b778 [27/42] clk: qcom: gpucc-msm8998: Add resets, cxc, fix flags on gpu_gx_gdsc
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-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/clk/linux.git/commit/?id=...
git remote add clk https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
git fetch --no-tags clk clk-qcom
git checkout 1e40c64b4026021a11bba22253741bb40141b778
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the clk/clk-qcom HEAD 27aef2b9462a57798e9bc54bf471ed39cf60117a builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
>> drivers/clk/qcom/gpucc-msm8998.c:265:45: error: 'NO_RET_PERIPH' undeclared here (not in a function)
265 | .flags = CLAMP_IO | SW_RESET | AON_RESET | NO_RET_PERIPH,
| ^~~~~~~~~~~~~
vim +/NO_RET_PERIPH +265 drivers/clk/qcom/gpucc-msm8998.c
252
253 static struct gdsc gpu_gx_gdsc = {
254 .gdscr = 0x1094,
255 .clamp_io_ctrl = 0x130,
256 .resets = (unsigned int []){ GPU_GX_BCR },
257 .reset_count = 1,
258 .cxcs = (unsigned int []){ 0x1098 },
259 .cxc_count = 1,
260 .pd = {
261 .name = "gpu_gx",
262 },
263 .parent = &gpu_cx_gdsc.pd,
264 .pwrsts = PWRSTS_OFF_ON | PWRSTS_RET,
> 265 .flags = CLAMP_IO | SW_RESET | AON_RESET | NO_RET_PERIPH,
266 };
267
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[intel-linux-intel-lts:4.19/android_r 18603/21953] drivers/usb/host/xhci-dbgraw.c:144:7: error: implicit declaration of function 'copy_to_user'; did you mean
by kernel test robot
tree: https://github.com/intel/linux-intel-lts.git 4.19/android_r
head: d0790dff6357bce6319e8542c7751c1f811b5fea
commit: 570daed7a2103fdef146a86d30df849a01ea01a9 [18603/21953] usb: xhci: dbc: Add a dbc raw driver to provide a raw interface on DbC
config: alpha-allmodconfig (attached as .config)
compiler: alpha-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://github.com/intel/linux-intel-lts/commit/570daed7a2103fdef146a86d3...
git remote add intel-linux-intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-linux-intel-lts 4.19/android_r
git checkout 570daed7a2103fdef146a86d30df849a01ea01a9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/usb/host/xhci-dbgraw.c:48:21: warning: no previous prototype for 'xhci_dbc_alloc_requests' [-Wmissing-prototypes]
48 | struct dbc_request *xhci_dbc_alloc_requests(struct dbc_ep *dep,
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/usb/host/xhci-dbgraw.c: In function 'dbc_read':
>> drivers/usb/host/xhci-dbgraw.c:144:7: error: implicit declaration of function 'copy_to_user'; did you mean 'sg_copy_to_buffer'? [-Werror=implicit-function-declaration]
144 | r = copy_to_user(buf, req->buf, xfer);
| ^~~~~~~~~~~~
| sg_copy_to_buffer
drivers/usb/host/xhci-dbgraw.c: In function 'dbc_write':
>> drivers/usb/host/xhci-dbgraw.c:185:8: error: implicit declaration of function 'copy_from_user'; did you mean 'kfifo_from_user'? [-Werror=implicit-function-declaration]
185 | ret = copy_from_user(req->buf, buf, xfer);
| ^~~~~~~~~~~~~~
| kfifo_from_user
In file included from drivers/usb/host/xhci-dbgraw.c:13:
drivers/usb/host/xhci-dbgraw.c: At top level:
include/linux/module.h:133:6: warning: 'init_module' specifies less restrictive attribute than its target 'xhci_dbc_raw_init': 'cold' [-Wmissing-attributes]
133 | int init_module(void) __attribute__((alias(#initfn)));
| ^~~~~~~~~~~
include/linux/module.h:123:28: note: in expansion of macro 'module_init'
123 | #define late_initcall(fn) module_init(fn)
| ^~~~~~~~~~~
drivers/usb/host/xhci-dbgraw.c:360:1: note: in expansion of macro 'late_initcall'
360 | late_initcall(xhci_dbc_raw_init);
| ^~~~~~~~~~~~~
drivers/usb/host/xhci-dbgraw.c:350:19: note: 'init_module' target declared here
350 | static int __init xhci_dbc_raw_init(void)
| ^~~~~~~~~~~~~~~~~
In file included from drivers/usb/host/xhci-dbgraw.c:13:
include/linux/module.h:139:7: warning: 'cleanup_module' specifies less restrictive attribute than its target 'xhci_dbc_raw_fini': 'cold' [-Wmissing-attributes]
139 | void cleanup_module(void) __attribute__((alias(#exitfn)));
| ^~~~~~~~~~~~~~
drivers/usb/host/xhci-dbgraw.c:361:1: note: in expansion of macro 'module_exit'
361 | module_exit(xhci_dbc_raw_fini);
| ^~~~~~~~~~~
drivers/usb/host/xhci-dbgraw.c:355:20: note: 'cleanup_module' target declared here
355 | static void __exit xhci_dbc_raw_fini(void)
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +144 drivers/usb/host/xhci-dbgraw.c
90
91 static ssize_t dbc_read(struct file *fp, char __user *buf,
92 size_t count, loff_t *pos)
93 {
94 int status = 0;
95 struct dbc_dev *dev = (struct dbc_dev *) fp->private_data;
96 struct xhci_dbc *dbc = dev->dbc;
97 struct dbc_request *req;
98 struct dbc_port *port = &dbc->port;
99 int r = count, xfer;
100 int ret;
101
102 if (dbc->state != DS_CONFIGURED)
103 return -EAGAIN;
104
105 port->in = get_in_ep(dbc->xhci);
106
107 mutex_lock(&dev->read_excl);
108
109 req = xhci_dbc_alloc_requests(port->in, dbc_complete_out);
110 if (!req) {
111 r = -ENOMEM;
112 goto alloc_fail;
113 }
114
115 req->actual = 0;
116
117 xfer = min_t(size_t, count, DBC_RAW_BULK_BUFFER_SIZE);
118 req->length = xfer;
119
120 status = dbc_ep_queue(port->in, req, GFP_ATOMIC);
121 if (status) {
122 dev->error = status;
123 r = status;
124 goto request_fail;
125 }
126
127 ret = wait_event_interruptible(dev->read_wq,
128 (req->status != -EINPROGRESS));
129
130 if (ret < 0) {
131 r = ret;
132 goto request_fail;
133 }
134
135 if (dev->error) {
136 r = dev->error;
137 goto request_fail;
138 }
139
140 xfer = (req->actual < count) ? req->actual : count;
141 if (!req->actual) {
142 r = 0;
143 } else {
> 144 r = copy_to_user(buf, req->buf, xfer);
145 if (!r)
146 r = xfer;
147 }
148
149 request_fail:
150 xhci_dbc_free_req(port->in, req);
151 alloc_fail:
152 mutex_unlock(&dev->read_excl);
153
154 return r;
155 }
156
157 static ssize_t dbc_write(struct file *fp, const char __user *buf,
158 size_t count, loff_t *pos)
159 {
160 int status = 0;
161 struct dbc_dev *dev = (struct dbc_dev *) fp->private_data;
162 struct xhci_dbc *dbc = dev->dbc;
163 struct dbc_request *req = 0;
164 struct dbc_port *port = &dbc->port;
165 int r = count, xfer;
166 int ret;
167
168 if (dbc->state != DS_CONFIGURED)
169 return -EAGAIN;
170
171 port->out = get_out_ep(dbc->xhci);
172
173 mutex_lock(&dev->write_excl);
174
175 /* get an idle tx request to use */
176 req = xhci_dbc_alloc_requests(port->out, dbc_complete_in);
177 if (!req) {
178 r = -ENOMEM;
179 goto alloc_fail;
180 }
181
182 req->actual = 0;
183 xfer = min_t(size_t, count, DBC_RAW_BULK_BUFFER_SIZE);
184
> 185 ret = copy_from_user(req->buf, buf, xfer);
186 if (ret) {
187 r = ret;
188 goto request_fail;
189 }
190 r = xfer;
191 req->length = xfer;
192 status = dbc_ep_queue(port->out, req, GFP_ATOMIC);
193 if (status) {
194 dev->error = status;
195 r = status;
196 goto request_fail;
197 }
198
199 ret = wait_event_interruptible(dev->write_wq,
200 (req->status != -EINPROGRESS));
201 if (ret < 0)
202 r = ret;
203
204 request_fail:
205 xhci_dbc_free_req(port->out, req);
206 alloc_fail:
207 mutex_unlock(&dev->write_excl);
208
209 return r;
210 }
211
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months