Marek Vasut
d975440bf8
asm-generic: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
...
This change is similar to e001bbae71
ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
A recent change in kernel/acct.c added a new warning for many
configurations using generic __xchg() implementation:
In file included from ./arch/nios2/include/asm/cmpxchg.h:12:0,
from include/asm-generic/atomic.h:18,
from arch/nios2/include/generated/asm/atomic.h:1,
from include/linux/atomic.h:4,
from include/linux/spinlock.h:406,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/mm.h:9,
from kernel/acct.c:46:
kernel/acct.c: In function 'acct_pin_kill':
include/asm-generic/cmpxchg.h:94:3: warning: value computed is not used [-Wunused-value]
((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
^
include/asm-generic/cmpxchg.h:102:28: note: in expansion of macro 'cmpxchg_local'
#define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n))
^
kernel/acct.c:177:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&acct->ns->bacct, pin, NULL);
^
The code is in fact correct, it's just a cmpxchg() call that
intentionally ignores the result, and no other code does that. The
warning does not show up on x86 because of the way that its cmpxchg()
macro is written. This changes the asm-ggeneric implementation to use
a similar construct with a compound expression instead of a typecast,
which causes the compiler to not complain about an unused result.
Fix the other macros in this file in a similar way, and place them
just below their function implementations.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-10-15 00:21:13 +02:00
..
bitops
move count_zeroes.h out of asm-generic
2015-10-15 00:21:07 +02:00
4level-fixup.h
mm, asm-generic: define PUD_SHIFT in <asm-generic/4level-fixup.h>
2015-02-11 17:06:03 -08:00
asm-offsets.h
asm-generic: Add common asm-offsets.h
2015-06-23 13:35:49 +09:00
atomic-long.h
locking, asm-generic: Add _{relaxed|acquire|release}() variants for 'atomic_long_t'
2015-08-12 11:59:01 +02:00
atomic.h
atomic: Collapse all atomic_{set,clear}_mask definitions
2015-07-27 14:06:24 +02:00
atomic64.h
atomic: Provide atomic_{or,xor,and}
2015-07-27 14:06:24 +02:00
audit_change_attr.h
audit: Modify a set of system calls in audit class definitions
2014-01-17 17:01:46 -05:00
audit_dir_write.h
audit_read.h
audit_signal.h
audit_write.h
audit: Modify a set of system calls in audit class definitions
2014-01-17 17:01:46 -05:00
barrier.h
locking, arch: use WRITE_ONCE()/READ_ONCE() in smp_store_release()/smp_load_acquire()
2015-08-03 10:59:30 +02:00
bitops.h
arch: Prepare for smp_mb__{before,after}_atomic()
2014-04-18 11:40:30 +02:00
bitsperlong.h
bug.h
bug: Make BUG() always stop the machine
2014-04-07 16:36:10 -07:00
bugs.h
cache.h
cacheflush.h
checksum.h
clkdev.h
asm-generic: COMMON_CLK defines __clk_{get,put}
2014-09-25 18:00:45 -07:00
cmpxchg-local.h
LLVMLinux: Remove warning about returning an uninitialized variable
2014-04-09 13:44:35 -07:00
cmpxchg.h
asm-generic: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
2015-10-15 00:21:13 +02:00
cputime.h
cputime_jiffies.h
sched, time: Fix build error with 64 bit cputime_t on 32 bit systems
2014-10-03 05:46:55 +02:00
cputime_nsecs.h
sched, time: Fix build error with 64 bit cputime_t on 32 bit systems
2014-10-03 05:46:55 +02:00
current.h
delay.h
device.h
div64.h
dma-coherent.h
DMA-API: Change dma_declare_coherent_memory() CPU address to phys_addr_t
2014-05-20 16:55:23 -06:00
dma-contiguous.h
asm-generic: Add dma-contiguous.h
2014-09-22 13:35:51 +02:00
dma-mapping-broken.h
dma-mapping-common.h
dma-mapping: consolidate dma_set_mask
2015-09-10 13:29:01 -07:00
dma.h
early_ioremap.h
Merge branch 'akpm' (patches from Andrew)
2015-09-08 17:52:23 -07:00
emergency-restart.h
exec.h
fb.h
fixmap.h
mm: provide early_memremap_ro to establish read-only mapping
2015-08-20 12:24:22 +01:00
ftrace.h
futex.h
sched/preempt, futex: Disable preemption in UP futex_atomic_cmpxchg_inatomic() explicitly
2015-05-19 08:39:16 +02:00
getorder.h
gpio.h
gpio: remove gpiod_sysfs_set_active_low
2015-05-12 10:46:53 +02:00
hardirq.h
hugetlb.h
mm: Fix generic hugetlb pte check return type.
2013-10-02 20:02:35 -04:00
hw_irq.h
ide_iops.h
int-ll64.h
io.h
x86/mm, asm-generic: Add IOMMU ioremap_uc() variant default
2015-07-21 10:47:03 +02:00
ioctl.h
include/asm-generic/ioctl.h: fix _IOC_TYPECHECK sparse error
2014-06-06 16:08:13 -07:00
iomap.h
x86/mm, asm-generic: Add ioremap_wt() for creating Write-Through mappings
2015-06-07 15:28:56 +02:00
irq.h
irq_regs.h
irq_work.h
irq_work: Introduce arch_irq_work_has_interrupt()
2014-09-13 18:38:07 +02:00
irqflags.h
Kbuild.asm
kdebug.h
kmap_types.h
kvm_para.h
libata-portmap.h
linkage.h
local.h
local64.h
mcs_spinlock.h
locking/mcs: Allow architecture specific asm files to be used for contended case
2014-02-09 21:18:52 +01:00
memory_model.h
mm: fix type cast in __pfn_to_phys()
2015-09-19 03:58:10 -04:00
mm-arch-hooks.h
mm: clean up per architecture MM hook header files
2015-07-17 16:39:53 -07:00
mm_hooks.h
mm: Make arch_unmap()/bprm_mm_init() available to all architectures
2014-11-19 11:54:13 +01:00
mmu.h
mmu_context.h
asm-generic: Remove asm-generic arch_bprm_mm_init()
2014-11-22 21:52:08 +01:00
module.h
msi.h
asm-generic: Add msi.h
2014-11-23 13:01:47 +01:00
mutex-dec.h
arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not
2013-06-26 12:10:55 +02:00
mutex-null.h
arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not
2013-06-26 12:10:55 +02:00
mutex-xchg.h
arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not
2013-06-26 12:10:55 +02:00
mutex.h
page.h
param.h
parport.h
pci-bridge.h
pci-dma-compat.h
pci-dma-compat: add pci_zalloc_consistent helper
2014-08-08 15:57:28 -07:00
pci.h
PCI: Remove unused pcibios_select_root() (again)
2015-06-08 07:56:21 -05:00
pci_iomap.h
PCI: Add pci_iomap_wc() variants
2015-08-25 09:59:45 +02:00
percpu.h
percpu: preffity percpu header files
2014-06-17 19:12:40 -04:00
pgalloc.h
pgtable-nopmd.h
pgtable-nopud.h
pgtable.h
mm: clarify that the function operates on hugepage pte
2015-06-24 17:49:44 -07:00
preempt.h
sched/preempt: Fix cond_resched_lock() and cond_resched_softirq()
2015-08-03 12:21:24 +02:00
ptrace.h
qrwlock.h
locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics
2015-08-12 11:59:06 +02:00
qrwlock_types.h
locking/rwlocks: Introduce 'qrwlocks' - fair, queued rwlocks
2014-06-06 07:58:28 +02:00
qspinlock.h
locking/qspinlock/x86: Fix performance regression under unaccelerated VMs
2015-09-11 07:49:42 +02:00
qspinlock_types.h
locking/qspinlock: Optimize for smaller NR_CPUS
2015-05-08 12:36:48 +02:00
resource.h
asm-generic: remove _STK_LIM_MAX
2014-05-15 00:32:09 +01:00
rtc.h
rtc: cmos: century support
2015-09-05 13:19:09 +02:00
rwsem.h
asm-generic: rwsem: de-PPCify rwsem.h
2014-03-14 18:02:08 +00:00
seccomp.h
seccomp: allow COMPAT sigreturn overrides
2015-04-17 09:04:09 -04:00
sections.h
nosave: consolidate __nosave_{begin,end} in <asm/sections.h>
2014-10-09 22:26:04 -04:00
segment.h
serial.h
siginfo.h
constify copy_siginfo_to_user{,32}()
2013-11-09 00:16:29 -05:00
signal.h
simd.h
crypto: create generic version of ablk_helper
2013-09-24 06:02:24 +10:00
sizes.h
spinlock.h
statfs.h
string.h
switch_to.h
syscall.h
syscall.h: fix doc text for syscall_get_arch()
2014-09-23 16:20:00 -04:00
syscalls.h
termios-base.h
termios.h
timex.h
tlb.h
mm: mmu_gather: use tlb->end != 0 only for TLB invalidation
2015-01-13 15:20:40 +13:00
tlbflush.h
topology.h
trace_clock.h
uaccess-unaligned.h
uaccess.h
asm-generic: uaccess: Spelling s/a ny/any/
2014-01-02 10:45:23 +01:00
unaligned.h
asm-generic: allow generic unaligned access if the arch supports it
2014-05-08 10:22:23 +02:00
unistd.h
user.h
vga.h
vmlinux.lds.h
kbuild: Fix .text.unlikely placement
2015-08-20 14:55:54 +02:00
vtime.h
include/asm-generic/vtime.h: avoid zero-length file
2013-09-30 14:31:02 -07:00
word-at-a-time.h
Make asm/word-at-a-time.h available on all architectures
2015-07-08 16:41:55 -04:00
xor.h