lkml.org 
[lkml]   [2021]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectarch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
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

\
 
 \ /
  Last update: 2021-12-10 08:41    [W:0.040 / U:0.360 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site