From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
Date: Fri, 10 Dec 2021 15:40:38 +0800 [thread overview]
Message-ID: <202112101559.gQTLUnTO-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 19059 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c741e49150dbb0c0aebe234389f4aa8b47958fa8
commit: a18b14d8886614b3c7d290c4cfc33389822b0535 riscv: Disable STACKPROTECTOR_PER_TASK if GCC_PLUGIN_RANDSTRUCT is enabled
date: 4 months ago
config: riscv-randconfig-m031-20211210 (https://download.01.org/0day-ci/archive/20211210/202112101559.gQTLUnTO-lkp(a)intel.com/config)
compiler: riscv64-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
New smatch warnings:
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:317 arch_atomic_sub_if_positive() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
drivers/crypto/cavium/cpt/cptpf_mbox.c:31 cpt_clear_mbox_intr() warn: should '1 << vf' be a 64 bit type?
sound/soc/rockchip/rockchip_i2s.c:690 rockchip_i2s_probe() warn: 'i2s->hclk' not released on lines: 618,623,630.
sound/soc/stm/stm32_sai_sub.c:503 stm32_sai_isr() error: uninitialized symbol 'sr'.
sound/soc/stm/stm32_sai_sub.c:503 stm32_sai_isr() error: uninitialized symbol 'imr'.
sound/soc/stm/stm32_sai_sub.c:790 stm32_sai_startup() error: uninitialized symbol 'cr2'.
sound/soc/stm/stm32_sai_sub.c:869 stm32_sai_set_slots() error: uninitialized symbol 'slotr'.
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1295 create_engine_group() error: we previously assumed 'mirrored_eng_grp' could be null (see line 1251)
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1348 ucode_load_store() warn: variable dereferenced before check 'val' (see line 1341)
drivers/video/fbdev/riva/riva_hw.c:1823 SetStartAddress3() warn: inconsistent indenting
sound/soc/qcom/qdsp6/q6afe.c:1001 q6afe_set_param() warn: is 'p' large enough for 'struct apr_pkt'? 0
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/kernel/signal.c:42 restore_fp_state() warn: maybe return -EFAULT instead of the bytes remaining?
arch/riscv/kernel/signal.c:70 save_fp_state() warn: maybe return -EFAULT instead of the bytes remaining?
drivers/net/wireless/ath/wcn36xx/main.c:574 wcn36xx_set_key() error: we previously assumed 'sta' could be null (see line 516)
drivers/net/wireless/ath/wcn36xx/smd.c:515 wcn36xx_smd_load_nv() error: we previously assumed 'wcn->nv' could be null (see line 506)
drivers/net/wireless/ath/wcn36xx/smd.c:1898 wcn36xx_smd_send_beacon() warn: potential spectre issue 'msg_body.beacon' [w]
drivers/net/wireless/ath/wcn36xx/smd.c:2910 wcn36xx_smd_gtk_offload_get_info_rsp() warn: inconsistent indenting
drivers/net/usb/hso.c:1399 hso_serial_set_termios() error: we previously assumed 'old' could be null (see line 1389)
arch/riscv/kernel/perf_event.c:160 riscv_map_cache_event() warn: inconsistent indenting
drivers/net/wireless/ath/ath10k/ahb.c:92 ath10k_ahb_clock_init() warn: passing zero to 'PTR_ERR'
lib/test_kasan.c:174 kmalloc_pagealloc_oob_right() error: buffer overflow 'ptr' 8202 <= 8202
arch/riscv/include/asm/atomic.h:339 arch_atomic64_sub_if_positive() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:317 arch_atomic_sub_if_positive() warn: inconsistent indenting
Old smatch warnings:
drivers/net/wireless/ath/ath11k/wmi.c:6146 ath11k_mgmt_rx_event() warn: 'rx_ev.snr + -95' 4294967201 can't fit into 127 'status->signal'
sound/soc/stm/stm32_sai_sub.c:1503 stm32_sai_sub_parse_of() warn: 'sai->pdata->pclk' not released on lines: 1498.
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1363 ucode_load_store() warn: variable dereferenced before check 'val' (see line 1341)
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1375 ucode_load_store() warn: variable dereferenced before check 'val' (see line 1341)
drivers/video/fbdev/riva/riva_hw.c:979 nv10CalcArbitration() warn: inconsistent indenting
drivers/video/fbdev/riva/riva_hw.c:1825 SetStartAddress3() warn: inconsistent indenting
sound/soc/qcom/qdsp6/q6afe.c:1055 q6afe_port_set_param_v2() warn: is 'p' large enough for 'struct apr_pkt'? 0
arch/riscv/kernel/signal.c:95 restore_sigcontext() warn: maybe return -EFAULT instead of the bytes remaining?
arch/riscv/kernel/signal.c:148 setup_sigcontext() warn: maybe return -EFAULT instead of the bytes remaining?
drivers/net/wireless/ath/ath10k/ahb.c:99 ath10k_ahb_clock_init() warn: passing zero to 'PTR_ERR'
drivers/net/wireless/ath/ath10k/ahb.c:106 ath10k_ahb_clock_init() warn: passing zero to 'PTR_ERR'
lib/test_kasan.c:130 kmalloc_oob_right() error: buffer overflow 'ptr' 123 <= 123
lib/test_kasan.c:154 kmalloc_node_oob_right() error: buffer overflow 'ptr' 4096 <= 4096
lib/test_kasan.c:281 krealloc_more_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:281 krealloc_more_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:310 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:310 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:324 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[middle]'
lib/test_kasan.c:324 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[middle]'
lib/test_kasan.c:373 krealloc_uaf() warn: passing freed memory 'ptr1'
lib/test_kasan.c:411 kmalloc_uaf_16() error: dereferencing freed memory 'ptr2'
lib/test_kasan.c:513 kmalloc_uaf_memset() warn: passing freed memory 'ptr'
lib/test_kasan.c:665 kasan_global_oob() error: buffer overflow 'array' 10 <= 13
lib/test_kasan.c:684 ksize_unpoisons_memory() error: buffer overflow 'ptr' 123 <= 123
lib/test_kasan.c:705 ksize_uaf() warn: passing freed memory 'ptr'
lib/test_kasan.c:769 kmem_cache_double_free() error: double free of 'p'
lib/test_kasan.c:844 kasan_memcmp() error: memcmp() 'ptr' too small (24 vs 25)
vim +204 arch/riscv/include/asm/atomic.h
fab957c11efe2f Palmer Dabbelt 2017-07-10 198
5ce6c1f3535fa8 Andrea Parri 2018-03-09 199 /* This is required to provide a full barrier on success. */
9efbb355831014 Mark Rutland 2021-05-25 200 static __always_inline int arch_atomic_fetch_add_unless(atomic_t *v, int a, int u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 201 {
fab957c11efe2f Palmer Dabbelt 2017-07-10 202 int prev, rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 203
fab957c11efe2f Palmer Dabbelt 2017-07-10 @204 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 205 "0: lr.w %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 206 " beq %[p], %[u], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 207 " add %[rc], %[p], %[a]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 208 " sc.w.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 209 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 210 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 211 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 212 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 213 : [a]"r" (a), [u]"r" (u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 214 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 215 return prev;
fab957c11efe2f Palmer Dabbelt 2017-07-10 216 }
9efbb355831014 Mark Rutland 2021-05-25 217 #define arch_atomic_fetch_add_unless arch_atomic_fetch_add_unless
fab957c11efe2f Palmer Dabbelt 2017-07-10 218
fab957c11efe2f Palmer Dabbelt 2017-07-10 219 #ifndef CONFIG_GENERIC_ATOMIC64
9efbb355831014 Mark Rutland 2021-05-25 220 static __always_inline s64 arch_atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 221 {
0754211847d7a2 Mark Rutland 2019-05-22 222 s64 prev;
0754211847d7a2 Mark Rutland 2019-05-22 223 long rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 224
fab957c11efe2f Palmer Dabbelt 2017-07-10 @225 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 226 "0: lr.d %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 227 " beq %[p], %[u], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 228 " add %[rc], %[p], %[a]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 229 " sc.d.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 230 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 231 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 232 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 233 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 234 : [a]"r" (a), [u]"r" (u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 235 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 236 return prev;
fab957c11efe2f Palmer Dabbelt 2017-07-10 237 }
9efbb355831014 Mark Rutland 2021-05-25 238 #define arch_atomic64_fetch_add_unless arch_atomic64_fetch_add_unless
fab957c11efe2f Palmer Dabbelt 2017-07-10 239 #endif
fab957c11efe2f Palmer Dabbelt 2017-07-10 240
fab957c11efe2f Palmer Dabbelt 2017-07-10 241 /*
fab957c11efe2f Palmer Dabbelt 2017-07-10 242 * atomic_{cmp,}xchg is required to have exactly the same ordering semantics as
5ce6c1f3535fa8 Andrea Parri 2018-03-09 243 * {cmp,}xchg and the operations that return, so they need a full barrier.
fab957c11efe2f Palmer Dabbelt 2017-07-10 244 */
5ce6c1f3535fa8 Andrea Parri 2018-03-09 245 #define ATOMIC_OP(c_t, prefix, size) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 246 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 247 c_t arch_atomic##prefix##_xchg_relaxed(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 248 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 249 return __xchg_relaxed(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 250 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 251 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 252 c_t arch_atomic##prefix##_xchg_acquire(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 253 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 254 return __xchg_acquire(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 255 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 256 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 257 c_t arch_atomic##prefix##_xchg_release(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 258 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 259 return __xchg_release(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 260 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 261 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 262 c_t arch_atomic##prefix##_xchg(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 263 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 264 return __xchg(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 265 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 266 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 267 c_t arch_atomic##prefix##_cmpxchg_relaxed(atomic##prefix##_t *v, \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 268 c_t o, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 269 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 270 return __cmpxchg_relaxed(&(v->counter), o, n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 271 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 272 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 273 c_t arch_atomic##prefix##_cmpxchg_acquire(atomic##prefix##_t *v, \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 274 c_t o, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 275 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 276 return __cmpxchg_acquire(&(v->counter), o, n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 277 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 278 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 279 c_t arch_atomic##prefix##_cmpxchg_release(atomic##prefix##_t *v, \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 280 c_t o, c_t n) \
fab957c11efe2f Palmer Dabbelt 2017-07-10 281 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 282 return __cmpxchg_release(&(v->counter), o, n, size); \
fab957c11efe2f Palmer Dabbelt 2017-07-10 283 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 284 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 285 c_t arch_atomic##prefix##_cmpxchg(atomic##prefix##_t *v, c_t o, c_t n) \
fab957c11efe2f Palmer Dabbelt 2017-07-10 286 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 287 return __cmpxchg(&(v->counter), o, n, size); \
fab957c11efe2f Palmer Dabbelt 2017-07-10 288 }
fab957c11efe2f Palmer Dabbelt 2017-07-10 289
fab957c11efe2f Palmer Dabbelt 2017-07-10 290 #ifdef CONFIG_GENERIC_ATOMIC64
5ce6c1f3535fa8 Andrea Parri 2018-03-09 291 #define ATOMIC_OPS() \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 292 ATOMIC_OP(int, , 4)
fab957c11efe2f Palmer Dabbelt 2017-07-10 293 #else
5ce6c1f3535fa8 Andrea Parri 2018-03-09 294 #define ATOMIC_OPS() \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 295 ATOMIC_OP(int, , 4) \
0754211847d7a2 Mark Rutland 2019-05-22 296 ATOMIC_OP(s64, 64, 8)
fab957c11efe2f Palmer Dabbelt 2017-07-10 297 #endif
fab957c11efe2f Palmer Dabbelt 2017-07-10 298
5ce6c1f3535fa8 Andrea Parri 2018-03-09 299 ATOMIC_OPS()
fab957c11efe2f Palmer Dabbelt 2017-07-10 300
9efbb355831014 Mark Rutland 2021-05-25 301 #define arch_atomic_xchg_relaxed arch_atomic_xchg_relaxed
9efbb355831014 Mark Rutland 2021-05-25 302 #define arch_atomic_xchg_acquire arch_atomic_xchg_acquire
9efbb355831014 Mark Rutland 2021-05-25 303 #define arch_atomic_xchg_release arch_atomic_xchg_release
9efbb355831014 Mark Rutland 2021-05-25 304 #define arch_atomic_xchg arch_atomic_xchg
9efbb355831014 Mark Rutland 2021-05-25 305 #define arch_atomic_cmpxchg_relaxed arch_atomic_cmpxchg_relaxed
9efbb355831014 Mark Rutland 2021-05-25 306 #define arch_atomic_cmpxchg_acquire arch_atomic_cmpxchg_acquire
9efbb355831014 Mark Rutland 2021-05-25 307 #define arch_atomic_cmpxchg_release arch_atomic_cmpxchg_release
9efbb355831014 Mark Rutland 2021-05-25 308 #define arch_atomic_cmpxchg arch_atomic_cmpxchg
8b699616f399b5 Andrea Parri 2018-12-01 309
fab957c11efe2f Palmer Dabbelt 2017-07-10 310 #undef ATOMIC_OPS
fab957c11efe2f Palmer Dabbelt 2017-07-10 311 #undef ATOMIC_OP
fab957c11efe2f Palmer Dabbelt 2017-07-10 312
9efbb355831014 Mark Rutland 2021-05-25 313 static __always_inline int arch_atomic_sub_if_positive(atomic_t *v, int offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 314 {
fab957c11efe2f Palmer Dabbelt 2017-07-10 315 int prev, rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 316
fab957c11efe2f Palmer Dabbelt 2017-07-10 @317 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 318 "0: lr.w %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 319 " sub %[rc], %[p], %[o]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 320 " bltz %[rc], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 321 " sc.w.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 322 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 323 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 324 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 325 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 326 : [o]"r" (offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 327 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 328 return prev - offset;
fab957c11efe2f Palmer Dabbelt 2017-07-10 329 }
fab957c11efe2f Palmer Dabbelt 2017-07-10 330
9efbb355831014 Mark Rutland 2021-05-25 331 #define arch_atomic_dec_if_positive(v) arch_atomic_sub_if_positive(v, 1)
fab957c11efe2f Palmer Dabbelt 2017-07-10 332
fab957c11efe2f Palmer Dabbelt 2017-07-10 333 #ifndef CONFIG_GENERIC_ATOMIC64
9efbb355831014 Mark Rutland 2021-05-25 334 static __always_inline s64 arch_atomic64_sub_if_positive(atomic64_t *v, s64 offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 335 {
0754211847d7a2 Mark Rutland 2019-05-22 336 s64 prev;
0754211847d7a2 Mark Rutland 2019-05-22 337 long rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 338
fab957c11efe2f Palmer Dabbelt 2017-07-10 @339 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 340 "0: lr.d %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 341 " sub %[rc], %[p], %[o]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 342 " bltz %[rc], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 343 " sc.d.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 344 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 345 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 346 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 347 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 348 : [o]"r" (offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 349 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 350 return prev - offset;
fab957c11efe2f Palmer Dabbelt 2017-07-10 351 }
fab957c11efe2f Palmer Dabbelt 2017-07-10 352
:::::: The code at line 204 was first introduced by commit
:::::: fab957c11efe2f405e08b9f0d080524bc2631428 RISC-V: Atomic and Locking Code
:::::: TO: Palmer Dabbelt <palmer@dabbelt.com>
:::::: CC: Palmer Dabbelt <palmer@dabbelt.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
Palmer Dabbelt <palmerdabbelt@google.com>
Subject: arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
Date: Fri, 10 Dec 2021 15:40:38 +0800 [thread overview]
Message-ID: <202112101559.gQTLUnTO-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c741e49150dbb0c0aebe234389f4aa8b47958fa8
commit: a18b14d8886614b3c7d290c4cfc33389822b0535 riscv: Disable STACKPROTECTOR_PER_TASK if GCC_PLUGIN_RANDSTRUCT is enabled
date: 4 months ago
config: riscv-randconfig-m031-20211210 (https://download.01.org/0day-ci/archive/20211210/202112101559.gQTLUnTO-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
New smatch warnings:
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:317 arch_atomic_sub_if_positive() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
drivers/crypto/cavium/cpt/cptpf_mbox.c:31 cpt_clear_mbox_intr() warn: should '1 << vf' be a 64 bit type?
sound/soc/rockchip/rockchip_i2s.c:690 rockchip_i2s_probe() warn: 'i2s->hclk' not released on lines: 618,623,630.
sound/soc/stm/stm32_sai_sub.c:503 stm32_sai_isr() error: uninitialized symbol 'sr'.
sound/soc/stm/stm32_sai_sub.c:503 stm32_sai_isr() error: uninitialized symbol 'imr'.
sound/soc/stm/stm32_sai_sub.c:790 stm32_sai_startup() error: uninitialized symbol 'cr2'.
sound/soc/stm/stm32_sai_sub.c:869 stm32_sai_set_slots() error: uninitialized symbol 'slotr'.
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1295 create_engine_group() error: we previously assumed 'mirrored_eng_grp' could be null (see line 1251)
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1348 ucode_load_store() warn: variable dereferenced before check 'val' (see line 1341)
drivers/video/fbdev/riva/riva_hw.c:1823 SetStartAddress3() warn: inconsistent indenting
sound/soc/qcom/qdsp6/q6afe.c:1001 q6afe_set_param() warn: is 'p' large enough for 'struct apr_pkt'? 0
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
arch/riscv/kernel/signal.c:42 restore_fp_state() warn: maybe return -EFAULT instead of the bytes remaining?
arch/riscv/kernel/signal.c:70 save_fp_state() warn: maybe return -EFAULT instead of the bytes remaining?
drivers/net/wireless/ath/wcn36xx/main.c:574 wcn36xx_set_key() error: we previously assumed 'sta' could be null (see line 516)
drivers/net/wireless/ath/wcn36xx/smd.c:515 wcn36xx_smd_load_nv() error: we previously assumed 'wcn->nv' could be null (see line 506)
drivers/net/wireless/ath/wcn36xx/smd.c:1898 wcn36xx_smd_send_beacon() warn: potential spectre issue 'msg_body.beacon' [w]
drivers/net/wireless/ath/wcn36xx/smd.c:2910 wcn36xx_smd_gtk_offload_get_info_rsp() warn: inconsistent indenting
drivers/net/usb/hso.c:1399 hso_serial_set_termios() error: we previously assumed 'old' could be null (see line 1389)
arch/riscv/kernel/perf_event.c:160 riscv_map_cache_event() warn: inconsistent indenting
drivers/net/wireless/ath/ath10k/ahb.c:92 ath10k_ahb_clock_init() warn: passing zero to 'PTR_ERR'
lib/test_kasan.c:174 kmalloc_pagealloc_oob_right() error: buffer overflow 'ptr' 8202 <= 8202
arch/riscv/include/asm/atomic.h:339 arch_atomic64_sub_if_positive() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:317 arch_atomic_sub_if_positive() warn: inconsistent indenting
Old smatch warnings:
drivers/net/wireless/ath/ath11k/wmi.c:6146 ath11k_mgmt_rx_event() warn: 'rx_ev.snr + -95' 4294967201 can't fit into 127 'status->signal'
sound/soc/stm/stm32_sai_sub.c:1503 stm32_sai_sub_parse_of() warn: 'sai->pdata->pclk' not released on lines: 1498.
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1363 ucode_load_store() warn: variable dereferenced before check 'val' (see line 1341)
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c:1375 ucode_load_store() warn: variable dereferenced before check 'val' (see line 1341)
drivers/video/fbdev/riva/riva_hw.c:979 nv10CalcArbitration() warn: inconsistent indenting
drivers/video/fbdev/riva/riva_hw.c:1825 SetStartAddress3() warn: inconsistent indenting
sound/soc/qcom/qdsp6/q6afe.c:1055 q6afe_port_set_param_v2() warn: is 'p' large enough for 'struct apr_pkt'? 0
arch/riscv/kernel/signal.c:95 restore_sigcontext() warn: maybe return -EFAULT instead of the bytes remaining?
arch/riscv/kernel/signal.c:148 setup_sigcontext() warn: maybe return -EFAULT instead of the bytes remaining?
drivers/net/wireless/ath/ath10k/ahb.c:99 ath10k_ahb_clock_init() warn: passing zero to 'PTR_ERR'
drivers/net/wireless/ath/ath10k/ahb.c:106 ath10k_ahb_clock_init() warn: passing zero to 'PTR_ERR'
lib/test_kasan.c:130 kmalloc_oob_right() error: buffer overflow 'ptr' 123 <= 123
lib/test_kasan.c:154 kmalloc_node_oob_right() error: buffer overflow 'ptr' 4096 <= 4096
lib/test_kasan.c:281 krealloc_more_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:281 krealloc_more_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:310 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:310 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[size2]'
lib/test_kasan.c:324 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[middle]'
lib/test_kasan.c:324 krealloc_less_oob_helper() warn: potentially one past the end of array 'ptr2[middle]'
lib/test_kasan.c:373 krealloc_uaf() warn: passing freed memory 'ptr1'
lib/test_kasan.c:411 kmalloc_uaf_16() error: dereferencing freed memory 'ptr2'
lib/test_kasan.c:513 kmalloc_uaf_memset() warn: passing freed memory 'ptr'
lib/test_kasan.c:665 kasan_global_oob() error: buffer overflow 'array' 10 <= 13
lib/test_kasan.c:684 ksize_unpoisons_memory() error: buffer overflow 'ptr' 123 <= 123
lib/test_kasan.c:705 ksize_uaf() warn: passing freed memory 'ptr'
lib/test_kasan.c:769 kmem_cache_double_free() error: double free of 'p'
lib/test_kasan.c:844 kasan_memcmp() error: memcmp() 'ptr' too small (24 vs 25)
vim +204 arch/riscv/include/asm/atomic.h
fab957c11efe2f Palmer Dabbelt 2017-07-10 198
5ce6c1f3535fa8 Andrea Parri 2018-03-09 199 /* This is required to provide a full barrier on success. */
9efbb355831014 Mark Rutland 2021-05-25 200 static __always_inline int arch_atomic_fetch_add_unless(atomic_t *v, int a, int u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 201 {
fab957c11efe2f Palmer Dabbelt 2017-07-10 202 int prev, rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 203
fab957c11efe2f Palmer Dabbelt 2017-07-10 @204 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 205 "0: lr.w %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 206 " beq %[p], %[u], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 207 " add %[rc], %[p], %[a]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 208 " sc.w.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 209 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 210 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 211 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 212 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 213 : [a]"r" (a), [u]"r" (u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 214 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 215 return prev;
fab957c11efe2f Palmer Dabbelt 2017-07-10 216 }
9efbb355831014 Mark Rutland 2021-05-25 217 #define arch_atomic_fetch_add_unless arch_atomic_fetch_add_unless
fab957c11efe2f Palmer Dabbelt 2017-07-10 218
fab957c11efe2f Palmer Dabbelt 2017-07-10 219 #ifndef CONFIG_GENERIC_ATOMIC64
9efbb355831014 Mark Rutland 2021-05-25 220 static __always_inline s64 arch_atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 221 {
0754211847d7a2 Mark Rutland 2019-05-22 222 s64 prev;
0754211847d7a2 Mark Rutland 2019-05-22 223 long rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 224
fab957c11efe2f Palmer Dabbelt 2017-07-10 @225 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 226 "0: lr.d %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 227 " beq %[p], %[u], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 228 " add %[rc], %[p], %[a]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 229 " sc.d.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 230 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 231 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 232 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 233 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 234 : [a]"r" (a), [u]"r" (u)
fab957c11efe2f Palmer Dabbelt 2017-07-10 235 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 236 return prev;
fab957c11efe2f Palmer Dabbelt 2017-07-10 237 }
9efbb355831014 Mark Rutland 2021-05-25 238 #define arch_atomic64_fetch_add_unless arch_atomic64_fetch_add_unless
fab957c11efe2f Palmer Dabbelt 2017-07-10 239 #endif
fab957c11efe2f Palmer Dabbelt 2017-07-10 240
fab957c11efe2f Palmer Dabbelt 2017-07-10 241 /*
fab957c11efe2f Palmer Dabbelt 2017-07-10 242 * atomic_{cmp,}xchg is required to have exactly the same ordering semantics as
5ce6c1f3535fa8 Andrea Parri 2018-03-09 243 * {cmp,}xchg and the operations that return, so they need a full barrier.
fab957c11efe2f Palmer Dabbelt 2017-07-10 244 */
5ce6c1f3535fa8 Andrea Parri 2018-03-09 245 #define ATOMIC_OP(c_t, prefix, size) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 246 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 247 c_t arch_atomic##prefix##_xchg_relaxed(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 248 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 249 return __xchg_relaxed(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 250 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 251 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 252 c_t arch_atomic##prefix##_xchg_acquire(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 253 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 254 return __xchg_acquire(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 255 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 256 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 257 c_t arch_atomic##prefix##_xchg_release(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 258 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 259 return __xchg_release(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 260 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 261 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 262 c_t arch_atomic##prefix##_xchg(atomic##prefix##_t *v, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 263 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 264 return __xchg(&(v->counter), n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 265 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 266 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 267 c_t arch_atomic##prefix##_cmpxchg_relaxed(atomic##prefix##_t *v, \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 268 c_t o, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 269 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 270 return __cmpxchg_relaxed(&(v->counter), o, n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 271 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 272 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 273 c_t arch_atomic##prefix##_cmpxchg_acquire(atomic##prefix##_t *v, \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 274 c_t o, c_t n) \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 275 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 276 return __cmpxchg_acquire(&(v->counter), o, n, size); \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 277 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 278 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 279 c_t arch_atomic##prefix##_cmpxchg_release(atomic##prefix##_t *v, \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 280 c_t o, c_t n) \
fab957c11efe2f Palmer Dabbelt 2017-07-10 281 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 282 return __cmpxchg_release(&(v->counter), o, n, size); \
fab957c11efe2f Palmer Dabbelt 2017-07-10 283 } \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 284 static __always_inline \
9efbb355831014 Mark Rutland 2021-05-25 285 c_t arch_atomic##prefix##_cmpxchg(atomic##prefix##_t *v, c_t o, c_t n) \
fab957c11efe2f Palmer Dabbelt 2017-07-10 286 { \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 287 return __cmpxchg(&(v->counter), o, n, size); \
fab957c11efe2f Palmer Dabbelt 2017-07-10 288 }
fab957c11efe2f Palmer Dabbelt 2017-07-10 289
fab957c11efe2f Palmer Dabbelt 2017-07-10 290 #ifdef CONFIG_GENERIC_ATOMIC64
5ce6c1f3535fa8 Andrea Parri 2018-03-09 291 #define ATOMIC_OPS() \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 292 ATOMIC_OP(int, , 4)
fab957c11efe2f Palmer Dabbelt 2017-07-10 293 #else
5ce6c1f3535fa8 Andrea Parri 2018-03-09 294 #define ATOMIC_OPS() \
5ce6c1f3535fa8 Andrea Parri 2018-03-09 295 ATOMIC_OP(int, , 4) \
0754211847d7a2 Mark Rutland 2019-05-22 296 ATOMIC_OP(s64, 64, 8)
fab957c11efe2f Palmer Dabbelt 2017-07-10 297 #endif
fab957c11efe2f Palmer Dabbelt 2017-07-10 298
5ce6c1f3535fa8 Andrea Parri 2018-03-09 299 ATOMIC_OPS()
fab957c11efe2f Palmer Dabbelt 2017-07-10 300
9efbb355831014 Mark Rutland 2021-05-25 301 #define arch_atomic_xchg_relaxed arch_atomic_xchg_relaxed
9efbb355831014 Mark Rutland 2021-05-25 302 #define arch_atomic_xchg_acquire arch_atomic_xchg_acquire
9efbb355831014 Mark Rutland 2021-05-25 303 #define arch_atomic_xchg_release arch_atomic_xchg_release
9efbb355831014 Mark Rutland 2021-05-25 304 #define arch_atomic_xchg arch_atomic_xchg
9efbb355831014 Mark Rutland 2021-05-25 305 #define arch_atomic_cmpxchg_relaxed arch_atomic_cmpxchg_relaxed
9efbb355831014 Mark Rutland 2021-05-25 306 #define arch_atomic_cmpxchg_acquire arch_atomic_cmpxchg_acquire
9efbb355831014 Mark Rutland 2021-05-25 307 #define arch_atomic_cmpxchg_release arch_atomic_cmpxchg_release
9efbb355831014 Mark Rutland 2021-05-25 308 #define arch_atomic_cmpxchg arch_atomic_cmpxchg
8b699616f399b5 Andrea Parri 2018-12-01 309
fab957c11efe2f Palmer Dabbelt 2017-07-10 310 #undef ATOMIC_OPS
fab957c11efe2f Palmer Dabbelt 2017-07-10 311 #undef ATOMIC_OP
fab957c11efe2f Palmer Dabbelt 2017-07-10 312
9efbb355831014 Mark Rutland 2021-05-25 313 static __always_inline int arch_atomic_sub_if_positive(atomic_t *v, int offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 314 {
fab957c11efe2f Palmer Dabbelt 2017-07-10 315 int prev, rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 316
fab957c11efe2f Palmer Dabbelt 2017-07-10 @317 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 318 "0: lr.w %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 319 " sub %[rc], %[p], %[o]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 320 " bltz %[rc], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 321 " sc.w.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 322 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 323 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 324 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 325 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 326 : [o]"r" (offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 327 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 328 return prev - offset;
fab957c11efe2f Palmer Dabbelt 2017-07-10 329 }
fab957c11efe2f Palmer Dabbelt 2017-07-10 330
9efbb355831014 Mark Rutland 2021-05-25 331 #define arch_atomic_dec_if_positive(v) arch_atomic_sub_if_positive(v, 1)
fab957c11efe2f Palmer Dabbelt 2017-07-10 332
fab957c11efe2f Palmer Dabbelt 2017-07-10 333 #ifndef CONFIG_GENERIC_ATOMIC64
9efbb355831014 Mark Rutland 2021-05-25 334 static __always_inline s64 arch_atomic64_sub_if_positive(atomic64_t *v, s64 offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 335 {
0754211847d7a2 Mark Rutland 2019-05-22 336 s64 prev;
0754211847d7a2 Mark Rutland 2019-05-22 337 long rc;
fab957c11efe2f Palmer Dabbelt 2017-07-10 338
fab957c11efe2f Palmer Dabbelt 2017-07-10 @339 __asm__ __volatile__ (
5ce6c1f3535fa8 Andrea Parri 2018-03-09 340 "0: lr.d %[p], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 341 " sub %[rc], %[p], %[o]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 342 " bltz %[rc], 1f\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 343 " sc.d.rl %[rc], %[rc], %[c]\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 344 " bnez %[rc], 0b\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 345 " fence rw, rw\n"
5ce6c1f3535fa8 Andrea Parri 2018-03-09 346 "1:\n"
fab957c11efe2f Palmer Dabbelt 2017-07-10 347 : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
fab957c11efe2f Palmer Dabbelt 2017-07-10 348 : [o]"r" (offset)
fab957c11efe2f Palmer Dabbelt 2017-07-10 349 : "memory");
fab957c11efe2f Palmer Dabbelt 2017-07-10 350 return prev - offset;
fab957c11efe2f Palmer Dabbelt 2017-07-10 351 }
fab957c11efe2f Palmer Dabbelt 2017-07-10 352
:::::: The code at line 204 was first introduced by commit
:::::: fab957c11efe2f405e08b9f0d080524bc2631428 RISC-V: Atomic and Locking Code
:::::: TO: Palmer Dabbelt <palmer@dabbelt.com>
:::::: CC: Palmer Dabbelt <palmer@dabbelt.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
next reply other threads:[~2021-12-10 7:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-10 7:40 kernel test robot [this message]
2021-12-10 7:40 ` arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-08-08 13:09 kernel test robot
2022-08-09 2:09 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=202112101559.gQTLUnTO-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/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.