From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: kernel/power/suspend.c:92:54: sparse: sparse: incorrect type in argument 2 (different base types)
Date: Wed, 29 Nov 2023 18:44:19 +0800 [thread overview]
Message-ID: <202311291609.v7chEWfl-lkp@intel.com> (raw)
::::::
:::::: Manual check reason: "only kconfig file changed"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Song Shuai <songshuaishuai@tinylab.org>
CC: Palmer Dabbelt <palmer@rivosinc.com>
CC: Andrew Jones <ajones@ventanamicro.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 18d46e76d7c2eedd8577fae67e3f1d4db25018b0
commit: c1f048a6bd7d7cb42e9bfd79eff85b33894997fe riscv: Enable ARCH_SUSPEND_POSSIBLE for s2idle
date: 5 months ago
:::::: branch date: 13 hours ago
:::::: commit date: 5 months ago
config: riscv-buildonly-randconfig-r006-20230429 (https://download.01.org/0day-ci/archive/20231129/202311291609.v7chEWfl-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20231129/202311291609.v7chEWfl-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202311291609.v7chEWfl-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
WARNING: invalid argument to '-march': '_zihintpause'
>> kernel/power/suspend.c:92:54: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] @@
kernel/power/suspend.c:92:54: sparse: expected int val
kernel/power/suspend.c:92:54: sparse: got restricted suspend_state_t [usertype]
kernel/power/suspend.c:117:54: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] @@
kernel/power/suspend.c:117:54: sparse: expected int val
kernel/power/suspend.c:117:54: sparse: got restricted suspend_state_t [usertype]
>> kernel/power/suspend.c:178:19: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:178:47: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:179:19: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:179:51: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:184:26: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:184:65: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:191:42: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:191:51: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:192:38: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:193:51: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:191:72: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:215:34: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:215:73: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:216:27: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:216:59: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:221:34: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:221:69: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:222:21: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:222:42: sparse: sparse: restricted suspend_state_t degrades to integer
>> kernel/power/suspend.c:445:33: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] state @@
kernel/power/suspend.c:445:33: sparse: expected int val
kernel/power/suspend.c:445:33: sparse: got restricted suspend_state_t [usertype] state
kernel/power/suspend.c:448:33: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] state @@
kernel/power/suspend.c:448:33: sparse: expected int val
kernel/power/suspend.c:448:33: sparse: got restricted suspend_state_t [usertype] state
kernel/power/suspend.c:518:53: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] state @@
kernel/power/suspend.c:518:53: sparse: expected int val
kernel/power/suspend.c:518:53: sparse: got restricted suspend_state_t [usertype] state
kernel/power/suspend.c:520:53: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] state @@
kernel/power/suspend.c:520:53: sparse: expected int val
kernel/power/suspend.c:520:53: sparse: got restricted suspend_state_t [usertype] state
kernel/power/suspend.c:557:52: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] state @@
kernel/power/suspend.c:557:52: sparse: expected int val
kernel/power/suspend.c:557:52: sparse: got restricted suspend_state_t [usertype] state
kernel/power/suspend.c:580:9: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:580:9: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:589:52: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int val @@ got restricted suspend_state_t [usertype] state @@
kernel/power/suspend.c:589:52: sparse: expected int val
kernel/power/suspend.c:589:52: sparse: got restricted suspend_state_t [usertype] state
kernel/power/suspend.c:590:9: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:590:9: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:615:13: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:615:22: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:615:39: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:615:48: sparse: sparse: restricted suspend_state_t degrades to integer
kernel/power/suspend.c:618:9: sparse: sparse: restricted suspend_state_t degrades to integer
vim +92 kernel/power/suspend.c
7e73c5ae6e7991 Zhang Rui 2013-02-06 89
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 90 static void s2idle_enter(void)
7e73c5ae6e7991 Zhang Rui 2013-02-06 91 {
690cbb90a709c1 Rafael J. Wysocki 2017-08-10 @92 trace_suspend_resume(TPS("machine_suspend"), PM_SUSPEND_TO_IDLE, true);
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 93
62fc00a6611a00 Sebastian Andrzej Siewior 2018-05-25 94 raw_spin_lock_irq(&s2idle_lock);
3810631332465d Rafael J. Wysocki 2015-02-12 95 if (pm_wakeup_pending())
3810631332465d Rafael J. Wysocki 2015-02-12 96 goto out;
3810631332465d Rafael J. Wysocki 2015-02-12 97
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 98 s2idle_state = S2IDLE_STATE_ENTER;
62fc00a6611a00 Sebastian Andrzej Siewior 2018-05-25 99 raw_spin_unlock_irq(&s2idle_lock);
3810631332465d Rafael J. Wysocki 2015-02-12 100
d2c8cce647f302 Sebastian Andrzej Siewior 2021-08-03 101 cpus_read_lock();
3810631332465d Rafael J. Wysocki 2015-02-12 102
3810631332465d Rafael J. Wysocki 2015-02-12 103 /* Push all the CPUs into the idle loop. */
3810631332465d Rafael J. Wysocki 2015-02-12 104 wake_up_all_idle_cpus();
3810631332465d Rafael J. Wysocki 2015-02-12 105 /* Make the current CPU wait so it can enter the idle loop too. */
b3dae109fa89d6 Peter Zijlstra 2018-06-12 106 swait_event_exclusive(s2idle_wait_head,
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 107 s2idle_state == S2IDLE_STATE_WAKE);
3810631332465d Rafael J. Wysocki 2015-02-12 108
d2c8cce647f302 Sebastian Andrzej Siewior 2021-08-03 109 cpus_read_unlock();
3810631332465d Rafael J. Wysocki 2015-02-12 110
62fc00a6611a00 Sebastian Andrzej Siewior 2018-05-25 111 raw_spin_lock_irq(&s2idle_lock);
3810631332465d Rafael J. Wysocki 2015-02-12 112
3810631332465d Rafael J. Wysocki 2015-02-12 113 out:
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 114 s2idle_state = S2IDLE_STATE_NONE;
62fc00a6611a00 Sebastian Andrzej Siewior 2018-05-25 115 raw_spin_unlock_irq(&s2idle_lock);
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 116
690cbb90a709c1 Rafael J. Wysocki 2017-08-10 117 trace_suspend_resume(TPS("machine_suspend"), PM_SUSPEND_TO_IDLE, false);
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 118 }
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 119
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 120 static void s2idle_loop(void)
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 121 {
56b991849009f5 Rafael J. Wysocki 2019-07-15 122 pm_pr_dbg("suspend-to-idle\n");
9a3ebe3523cc82 Rafael J. Wysocki 2017-07-21 123
8e6bcd9f7eac47 Rafael J. Wysocki 2017-07-21 124 /*
56b991849009f5 Rafael J. Wysocki 2019-07-15 125 * Suspend-to-idle equals:
8e6bcd9f7eac47 Rafael J. Wysocki 2017-07-21 126 * frozen processes + suspended devices + idle processors.
56b991849009f5 Rafael J. Wysocki 2019-07-15 127 * Thus s2idle_enter() should be called right after all devices have
56b991849009f5 Rafael J. Wysocki 2019-07-15 128 * been suspended.
87cbde8d9081b9 Rafael J. Wysocki 2017-09-28 129 *
56b991849009f5 Rafael J. Wysocki 2019-07-15 130 * Wakeups during the noirq suspend of devices may be spurious, so try
56b991849009f5 Rafael J. Wysocki 2019-07-15 131 * to avoid them upfront.
8e6bcd9f7eac47 Rafael J. Wysocki 2017-07-21 132 */
56b991849009f5 Rafael J. Wysocki 2019-07-15 133 for (;;) {
e3728b50cd9be7 Rafael J. Wysocki 2020-02-11 134 if (s2idle_ops && s2idle_ops->wake) {
e3728b50cd9be7 Rafael J. Wysocki 2020-02-11 135 if (s2idle_ops->wake())
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 136 break;
e3728b50cd9be7 Rafael J. Wysocki 2020-02-11 137 } else if (pm_wakeup_pending()) {
e3728b50cd9be7 Rafael J. Wysocki 2020-02-11 138 break;
e3728b50cd9be7 Rafael J. Wysocki 2020-02-11 139 }
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 140
811d59fdf56a17 Mario Limonciello 2022-08-29 141 if (s2idle_ops && s2idle_ops->check)
811d59fdf56a17 Mario Limonciello 2022-08-29 142 s2idle_ops->check();
811d59fdf56a17 Mario Limonciello 2022-08-29 143
56b991849009f5 Rafael J. Wysocki 2019-07-15 144 s2idle_enter();
8e6bcd9f7eac47 Rafael J. Wysocki 2017-07-21 145 }
33e4f80ee69b51 Rafael J. Wysocki 2017-06-12 146
8d8b2441db9647 Rafael J. Wysocki 2017-07-19 147 pm_pr_dbg("resume from suspend-to-idle\n");
7e73c5ae6e7991 Zhang Rui 2013-02-06 148 }
7e73c5ae6e7991 Zhang Rui 2013-02-06 149
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 150 void s2idle_wake(void)
7e73c5ae6e7991 Zhang Rui 2013-02-06 151 {
3810631332465d Rafael J. Wysocki 2015-02-12 152 unsigned long flags;
3810631332465d Rafael J. Wysocki 2015-02-12 153
62fc00a6611a00 Sebastian Andrzej Siewior 2018-05-25 154 raw_spin_lock_irqsave(&s2idle_lock, flags);
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 155 if (s2idle_state > S2IDLE_STATE_NONE) {
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 156 s2idle_state = S2IDLE_STATE_WAKE;
b3dae109fa89d6 Peter Zijlstra 2018-06-12 157 swake_up_one(&s2idle_wait_head);
7e73c5ae6e7991 Zhang Rui 2013-02-06 158 }
62fc00a6611a00 Sebastian Andrzej Siewior 2018-05-25 159 raw_spin_unlock_irqrestore(&s2idle_lock, flags);
3810631332465d Rafael J. Wysocki 2015-02-12 160 }
f02f4f9d826590 Rafael J. Wysocki 2017-08-10 161 EXPORT_SYMBOL_GPL(s2idle_wake);
7e73c5ae6e7991 Zhang Rui 2013-02-06 162
43e8317b0bba1d Rafael J. Wysocki 2014-05-26 163 static bool valid_state(suspend_state_t state)
43e8317b0bba1d Rafael J. Wysocki 2014-05-26 164 {
43e8317b0bba1d Rafael J. Wysocki 2014-05-26 165 /*
9f6abfcd67aae5 Rafael J. Wysocki 2021-10-22 166 * The PM_SUSPEND_STANDBY and PM_SUSPEND_MEM states require low-level
9f6abfcd67aae5 Rafael J. Wysocki 2021-10-22 167 * support and need to be valid to the low-level implementation.
9f6abfcd67aae5 Rafael J. Wysocki 2021-10-22 168 *
9f6abfcd67aae5 Rafael J. Wysocki 2021-10-22 169 * No ->valid() or ->enter() callback implies that none are valid.
43e8317b0bba1d Rafael J. Wysocki 2014-05-26 170 */
9f6abfcd67aae5 Rafael J. Wysocki 2021-10-22 171 return suspend_ops && suspend_ops->valid && suspend_ops->valid(state) &&
9f6abfcd67aae5 Rafael J. Wysocki 2021-10-22 172 suspend_ops->enter;
43e8317b0bba1d Rafael J. Wysocki 2014-05-26 173 }
43e8317b0bba1d Rafael J. Wysocki 2014-05-26 174
fa7fd6fa38e36d Sudeep Holla 2016-08-19 175 void __init pm_states_init(void)
fa7fd6fa38e36d Sudeep Holla 2016-08-19 176 {
c1bfc598181bf0 Rafael J. Wysocki 2021-10-19 177 /* "mem" and "freeze" are always present in /sys/power/state. */
c1bfc598181bf0 Rafael J. Wysocki 2021-10-19 @178 pm_states[PM_SUSPEND_MEM] = pm_labels[PM_SUSPEND_MEM];
690cbb90a709c1 Rafael J. Wysocki 2017-08-10 179 pm_states[PM_SUSPEND_TO_IDLE] = pm_labels[PM_SUSPEND_TO_IDLE];
fa7fd6fa38e36d Sudeep Holla 2016-08-19 180 /*
406e79385f3223 Rafael J. Wysocki 2016-11-21 181 * Suspend-to-idle should be supported even without any suspend_ops,
406e79385f3223 Rafael J. Wysocki 2016-11-21 182 * initialize mem_sleep_states[] accordingly here.
fa7fd6fa38e36d Sudeep Holla 2016-08-19 183 */
690cbb90a709c1 Rafael J. Wysocki 2017-08-10 184 mem_sleep_states[PM_SUSPEND_TO_IDLE] = mem_sleep_labels[PM_SUSPEND_TO_IDLE];
fa7fd6fa38e36d Sudeep Holla 2016-08-19 185 }
fa7fd6fa38e36d Sudeep Holla 2016-08-19 186
406e79385f3223 Rafael J. Wysocki 2016-11-21 187 static int __init mem_sleep_default_setup(char *str)
0399d4db3edf5c Rafael J. Wysocki 2014-05-26 188 {
406e79385f3223 Rafael J. Wysocki 2016-11-21 189 suspend_state_t state;
406e79385f3223 Rafael J. Wysocki 2016-11-21 190
690cbb90a709c1 Rafael J. Wysocki 2017-08-10 @191 for (state = PM_SUSPEND_TO_IDLE; state <= PM_SUSPEND_MEM; state++)
406e79385f3223 Rafael J. Wysocki 2016-11-21 192 if (mem_sleep_labels[state] &&
406e79385f3223 Rafael J. Wysocki 2016-11-21 193 !strcmp(str, mem_sleep_labels[state])) {
406e79385f3223 Rafael J. Wysocki 2016-11-21 194 mem_sleep_default = state;
406e79385f3223 Rafael J. Wysocki 2016-11-21 195 break;
0399d4db3edf5c Rafael J. Wysocki 2014-05-26 196 }
0399d4db3edf5c Rafael J. Wysocki 2014-05-26 197
406e79385f3223 Rafael J. Wysocki 2016-11-21 198 return 1;
406e79385f3223 Rafael J. Wysocki 2016-11-21 199 }
406e79385f3223 Rafael J. Wysocki 2016-11-21 200 __setup("mem_sleep_default=", mem_sleep_default_setup);
0399d4db3edf5c Rafael J. Wysocki 2014-05-26 201
:::::: The code at line 92 was first introduced by commit
:::::: 690cbb90a709c1b9389c6cb8e1978e77553ce0fb PM / s2idle: Rename PM_SUSPEND_FREEZE to PM_SUSPEND_TO_IDLE
:::::: TO: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2023-11-29 10:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-29 10:44 kernel test robot [this message]
2023-11-30 1:44 ` kernel/power/suspend.c:92:54: sparse: sparse: incorrect type in argument 2 (different base types) Liu, Yujie
-- strict thread matches above, loose matches on Subject: below --
2024-01-04 10:08 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202311291609.v7chEWfl-lkp@intel.com \
--to=lkp@intel.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.