A Gentoo user reported a UBSAN signed integer overflow in atomic_add_return. /** * atomic_add_return - add integer and return * @i: integer value to add * @v: pointer of type atomic_t * * Atomically adds @i to @v and returns @i + @v */ static __always_inline int atomic_add_return(int i, atomic_t *v) { return i + xadd(&v->counter, i); } shall we change something? ================================================================================ kernel: UBSAN: Undefined behaviour in ./arch/x86/include/asm/atomic.h:156:2 kernel: signed integer overflow: kernel: 2147483647 + 1 cannot be represented in type 'int' kernel: CPU: 1 PID: 37 Comm: kswapd0 Tainted: P W O 4.9.25-gentoo #4 kernel: Hardware name: XXXXXX, BIOS YYYYYY kernel: ec38fc0c d1f444f2 00000007 ec38fc3c 00000001 ec38fc1c d1fc8ffe ec38fc1c kernel: d2b1146c ec38fca0 d1fc934b d28b15c0 ec38fc40 0000002b ec38fc68 d2b1146c kernel: 0000002b 00000002 37343132 36333834 00003734 c2f91260 00000025 ec38fc74 kernel: Call Trace: kernel: [] dump_stack+0x59/0x87 kernel: [] ubsan_epilogue+0xe/0x40 kernel: [] handle_overflow+0xbb/0xf0 kernel: [] ? radix_tree_clear_tags+0x34/0xa0 kernel: [] ? __delete_from_page_cache+0x464/0x9c0 kernel: [] __ubsan_handle_add_overflow+0x12/0x20 kernel: [] workingset_eviction+0xe6/0x120 kernel: [] __remove_mapping+0x1bb/0x390 kernel: [] shrink_page_list+0x3a6/0x14d0 kernel: [] shrink_inactive_list+0x2aa/0x8f0 kernel: [] shrink_node_memcg+0x742/0xd70 kernel: [] shrink_node+0xf2/0x7c0 kernel: [] kswapd+0x362/0xb00 kernel: [] ? mem_cgroup_shrink_node+0x210/0x210 kernel: [] kthread+0xe3/0x170 kernel: [] ? _raw_spin_unlock_irq+0x8/0x10 kernel: [] ? mem_cgroup_shrink_node+0x210/0x210 kernel: [] ? kthread_park+0x50/0x50 kernel: [] ret_from_fork+0x1b/0x28 kernel: ================================================================================ Thanks, Alice