diff options
author | Arun Sharma <asharma@fb.com> | 2011-07-26 16:09:06 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 16:49:47 -0700 |
commit | 60063497a95e716c9a689af3be2687d261f115b4 (patch) | |
tree | 6ce0d68db76982c53df46aee5f29f944ebf2c320 /include/linux | |
parent | 148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed (diff) | |
download | lwn-60063497a95e716c9a689af3be2687d261f115b4.tar.gz lwn-60063497a95e716c9a689af3be2687d261f115b4.zip |
atomic: use <linux/atomic.h>
This allows us to move duplicated code in <asm/atomic.h>
(atomic_inc_not_zero() for now) to <linux/atomic.h>
Signed-off-by: Arun Sharma <asharma@fb.com>
Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: David Miller <davem@davemloft.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
50 files changed, 58 insertions, 49 deletions
diff --git a/include/linux/aio.h b/include/linux/aio.h index 7a8db4155281..2dcb72bff4b6 100644 --- a/include/linux/aio.h +++ b/include/linux/aio.h @@ -7,7 +7,7 @@ #include <linux/uio.h> #include <linux/rcupdate.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #define AIO_MAXSEGS 4 #define AIO_KIOGRP_NR_ATOMIC 8 diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h index 381f4cec8260..49a83ca900ba 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h @@ -220,7 +220,7 @@ struct atm_cirange { #include <linux/skbuff.h> /* struct sk_buff */ #include <linux/uio.h> #include <net/sock.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #ifdef CONFIG_PROC_FS #include <linux/proc_fs.h> diff --git a/include/linux/atomic.h b/include/linux/atomic.h index bc6615d4132b..66fed6364122 100644 --- a/include/linux/atomic.h +++ b/include/linux/atomic.h @@ -3,6 +3,15 @@ #include <asm/atomic.h> /** + * atomic_inc_not_zero - increment unless the number is zero + * @v: pointer of type atomic_t + * + * Atomically increments @v by 1, so long as @v is non-zero. + * Returns non-zero if @v was non-zero, and zero otherwise. + */ +#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) + +/** * atomic_inc_not_zero_hint - increment if not null * @v: pointer of type atomic_t * @hint: probable value of the atomic before the increment diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index a008982e7c08..3b2f9cb82986 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -16,7 +16,7 @@ #include <linux/sched.h> #include <linux/timer.h> #include <linux/writeback.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct page; struct device; diff --git a/include/linux/bit_spinlock.h b/include/linux/bit_spinlock.h index 564d997e2168..ac4d9f8b52e9 100644 --- a/include/linux/bit_spinlock.h +++ b/include/linux/bit_spinlock.h @@ -3,7 +3,7 @@ #include <linux/kernel.h> #include <linux/preempt.h> -#include <asm/atomic.h> +#include <linux/atomic.h> /* * bit-based spin_lock() diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 503c8a6b3079..458f497738a4 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -12,7 +12,7 @@ #include <linux/linkage.h> #include <linux/pagemap.h> #include <linux/wait.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #ifdef CONFIG_BLOCK diff --git a/include/linux/configfs.h b/include/linux/configfs.h index 645778ad899b..3081c58d696e 100644 --- a/include/linux/configfs.h +++ b/include/linux/configfs.h @@ -42,7 +42,7 @@ #include <linux/mutex.h> #include <linux/err.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #define CONFIGFS_ITEM_NAME_LEN 20 diff --git a/include/linux/connector.h b/include/linux/connector.h index f696bccd48cb..0c69ad825b39 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h @@ -75,7 +75,7 @@ struct cn_msg { #ifdef __KERNEL__ -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/list.h> #include <linux/workqueue.h> diff --git a/include/linux/cred.h b/include/linux/cred.h index f240f2fa0197..48e82af1159b 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h @@ -16,7 +16,7 @@ #include <linux/init.h> #include <linux/key.h> #include <linux/selinux.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct user_struct; struct cred; diff --git a/include/linux/crypto.h b/include/linux/crypto.h index a6a7a1c83f54..e5e468e9133d 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -17,7 +17,7 @@ #ifndef _LINUX_CRYPTO_H #define _LINUX_CRYPTO_H -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/list.h> diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 3f22d8d6d8a3..d37d2a793099 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -1,7 +1,7 @@ #ifndef __LINUX_DCACHE_H #define __LINUX_DCACHE_H -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/list.h> #include <linux/rculist.h> #include <linux/rculist_bl.h> diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h index 2833452ea01c..5033fb88c107 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h @@ -2,7 +2,7 @@ #define __LINUX_DEBUG_LOCKING_H #include <linux/kernel.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/system.h> struct task_struct; diff --git a/include/linux/device.h b/include/linux/device.h index 160d4ddb2499..c20dfbfc49b4 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -22,7 +22,7 @@ #include <linux/types.h> #include <linux/module.h> #include <linux/pm.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/device.h> struct device; diff --git a/include/linux/edac.h b/include/linux/edac.h index 36c66443bdfd..4a73257b47d0 100644 --- a/include/linux/edac.h +++ b/include/linux/edac.h @@ -12,7 +12,7 @@ #ifndef _LINUX_EDAC_H_ #define _LINUX_EDAC_H_ -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/sysdev.h> #define EDAC_OPSTATE_INVAL -1 diff --git a/include/linux/fault-inject.h b/include/linux/fault-inject.h index a842db638380..3ff060ac7810 100644 --- a/include/linux/fault-inject.h +++ b/include/linux/fault-inject.h @@ -5,7 +5,7 @@ #include <linux/types.h> #include <linux/debugfs.h> -#include <asm/atomic.h> +#include <linux/atomic.h> /* * For explanation of the elements of this struct, see diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h index df7e3cf82e97..82163c4b32c9 100644 --- a/include/linux/fdtable.h +++ b/include/linux/fdtable.h @@ -13,7 +13,7 @@ #include <linux/init.h> #include <linux/fs.h> -#include <asm/atomic.h> +#include <linux/atomic.h> /* * The default fd array needs to be at least BITS_PER_LONG, diff --git a/include/linux/filter.h b/include/linux/filter.h index 9ee3f9fb0b4a..741956fa5bfd 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -9,7 +9,7 @@ #include <linux/types.h> #ifdef __KERNEL__ -#include <asm/atomic.h> +#include <linux/atomic.h> #endif /* diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 5e6f42789afe..84ccf8e04fa6 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h @@ -14,7 +14,7 @@ #include <linux/types.h> #include <linux/workqueue.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/byteorder.h> #define fw_notify(s, args...) printk(KERN_NOTICE KBUILD_MODNAME ": " s, ## args) diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index 69ad89b50489..91d0e0a34ef3 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h @@ -16,7 +16,7 @@ #include <linux/spinlock.h> #include <linux/types.h> -#include <asm/atomic.h> +#include <linux/atomic.h> /* * IN_* from inotfy.h lines up EXACTLY with FS_*, this is so we can easily diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index f6efed0039ed..a103732b7588 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -17,7 +17,7 @@ #include <linux/kref.h> #include <linux/workqueue.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/ptrace.h> #include <asm/system.h> #include <trace/events/irq.h> diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h index 83e745f3ead7..66f23dc5e76a 100644 --- a/include/linux/jump_label.h +++ b/include/linux/jump_label.h @@ -54,7 +54,7 @@ extern void jump_label_apply_nops(struct module *mod); #else -#include <asm/atomic.h> +#include <linux/atomic.h> #define JUMP_LABEL_INIT {ATOMIC_INIT(0)} diff --git a/include/linux/kdb.h b/include/linux/kdb.h index aadff7cc2b84..529d9a0c75a5 100644 --- a/include/linux/kdb.h +++ b/include/linux/kdb.h @@ -16,7 +16,7 @@ #ifdef CONFIG_KGDB_KDB #include <linux/init.h> #include <linux/sched.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #define KDB_POLL_FUNC_MAX 5 extern int kdb_poll_idx; diff --git a/include/linux/key.h b/include/linux/key.h index 6ea4eebd3467..183a6af7715d 100644 --- a/include/linux/key.h +++ b/include/linux/key.h @@ -21,7 +21,7 @@ #include <linux/rcupdate.h> #include <linux/sysctl.h> #include <linux/rwsem.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #ifdef __KERNEL__ diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 10ca03d0a250..fa391835508d 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h @@ -16,7 +16,7 @@ #include <linux/serial_8250.h> #include <linux/linkage.h> #include <linux/init.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #ifdef CONFIG_HAVE_ARCH_KGDB #include <asm/kgdb.h> #endif diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 9229b64ee3aa..668729cc0fe9 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h @@ -25,7 +25,7 @@ #include <linux/kobject_ns.h> #include <linux/kernel.h> #include <linux/wait.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #define UEVENT_HELPER_PATH_LEN 256 #define UEVENT_NUM_ENVP 32 /* number of env pointers */ diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 387329e02303..53ef894bfa05 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h @@ -37,7 +37,7 @@ #include <linux/completion.h> #include <linux/radix-tree.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #define MAX_MSIX_P_PORT 17 #define MAX_MSIX 64 diff --git a/include/linux/mman.h b/include/linux/mman.h index 9872d6ca58ae..8b74e9b1d0ad 100644 --- a/include/linux/mman.h +++ b/include/linux/mman.h @@ -14,7 +14,7 @@ #include <linux/mm.h> #include <linux/percpu_counter.h> -#include <asm/atomic.h> +#include <linux/atomic.h> extern int sysctl_overcommit_memory; extern int sysctl_overcommit_ratio; diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 0a2d3d620feb..be1ac8d7789b 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -16,7 +16,7 @@ #include <linux/nodemask.h> #include <linux/pageblock-flags.h> #include <generated/bounds.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/page.h> /* Free memory management - zoned buddy allocator. */ diff --git a/include/linux/mount.h b/include/linux/mount.h index 604f122a2326..33fe53d78110 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h @@ -14,7 +14,7 @@ #include <linux/nodemask.h> #include <linux/spinlock.h> #include <linux/seqlock.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct super_block; struct vfsmount; diff --git a/include/linux/mutex.h b/include/linux/mutex.h index 7f87217e9d1f..9121595a8ebf 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -15,7 +15,7 @@ #include <linux/linkage.h> #include <linux/lockdep.h> -#include <asm/atomic.h> +#include <linux/atomic.h> /* * Simple, straightforward mutexes with strict semantics: diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ea6f4aa479d4..2ed0b6cf11c5 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -34,7 +34,7 @@ #include <linux/pm_qos_params.h> #include <linux/timer.h> #include <linux/delay.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/cache.h> #include <asm/byteorder.h> diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index 87694ca86914..08c444aa0411 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h @@ -7,7 +7,7 @@ #include <linux/nfs_xdr.h> #include <linux/sunrpc/xprt.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct nfs4_session; struct nfs_iostats; diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h index 7f5cfd3b37dd..49c8727eeb57 100644 --- a/include/linux/oprofile.h +++ b/include/linux/oprofile.h @@ -18,7 +18,7 @@ #include <linux/init.h> #include <linux/errno.h> #include <linux/printk.h> -#include <asm/atomic.h> +#include <linux/atomic.h> /* Each escaped entry is prefixed by ESCAPE_CODE * then one of the following codes, then the diff --git a/include/linux/pci.h b/include/linux/pci.h index 4e4203a96312..3a5626df37ce 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -49,7 +49,7 @@ #include <linux/compiler.h> #include <linux/errno.h> #include <linux/kobject.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/device.h> #include <linux/io.h> #include <linux/irqreturn.h> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 3f2711ccf910..245bafdafd5e 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -509,7 +509,7 @@ struct perf_guest_info_callbacks { #include <linux/cpu.h> #include <linux/irq_work.h> #include <linux/jump_label.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/local.h> #define PERF_MAX_STACK_DEPTH 255 diff --git a/include/linux/phy.h b/include/linux/phy.h index 7da5fa845959..ad5186354d92 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -26,7 +26,7 @@ #include <linux/workqueue.h> #include <linux/mod_devicetable.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #define PHY_BASIC_FEATURES (SUPPORTED_10baseT_Half | \ SUPPORTED_10baseT_Full | \ diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index e7576cf9e32d..650af6deaf8f 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -5,7 +5,7 @@ #include <linux/fs.h> #include <linux/spinlock.h> #include <linux/magic.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct net; struct completion; diff --git a/include/linux/quota.h b/include/linux/quota.h index 313b7defc088..cb7855699037 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h @@ -180,7 +180,7 @@ enum { #include <linux/dqblk_v1.h> #include <linux/dqblk_v2.h> -#include <asm/atomic.h> +#include <linux/atomic.h> typedef __kernel_uid32_t qid_t; /* Type in which we store ids in memory */ typedef long long qsize_t; /* Type in which we store sizes */ diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 77950dfa0a9e..6a6741440cb7 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -15,7 +15,7 @@ #include <linux/spinlock.h> #include <asm/system.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct rw_semaphore; diff --git a/include/linux/sem.h b/include/linux/sem.h index f2961afa2f66..1feb2de2ee57 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h @@ -77,7 +77,7 @@ struct seminfo { #define SEMUSZ 20 /* sizeof struct sem_undo */ #ifdef __KERNEL__ -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/rcupdate.h> #include <linux/cache.h> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index a24218c9c84b..7b996ed86d5b 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -20,7 +20,7 @@ #include <linux/time.h> #include <linux/cache.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/types.h> #include <linux/spinlock.h> #include <linux/net.h> diff --git a/include/linux/sonet.h b/include/linux/sonet.h index 67ad11fcf88b..de8832dd272b 100644 --- a/include/linux/sonet.h +++ b/include/linux/sonet.h @@ -58,7 +58,7 @@ struct sonet_stats { #ifdef __KERNEL__ -#include <asm/atomic.h> +#include <linux/atomic.h> struct k_sonet_stats { #define __HANDLE_ITEM(i) atomic_t i diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 0b22d51258e6..7df6c17b0281 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -384,7 +384,7 @@ static inline void assert_spin_locked(spinlock_t *lock) * Pull the atomic_t declaration: * (asm-mips/atomic.h needs above definitions) */ -#include <asm/atomic.h> +#include <linux/atomic.h> /** * atomic_dec_and_lock - lock on reaching reference count zero * @atomic: the atomic counter diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h index 8521067ed4f7..febc4dbec2ca 100644 --- a/include/linux/sunrpc/auth.h +++ b/include/linux/sunrpc/auth.h @@ -15,7 +15,7 @@ #include <linux/sunrpc/msg_prot.h> #include <linux/sunrpc/xdr.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/rcupdate.h> /* size of the nodename buffer */ diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h index d1c79a906397..5efd8cef389e 100644 --- a/include/linux/sunrpc/cache.h +++ b/include/linux/sunrpc/cache.h @@ -15,7 +15,7 @@ #include <linux/kref.h> #include <linux/slab.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <linux/proc_fs.h> /* diff --git a/include/linux/sunrpc/timer.h b/include/linux/sunrpc/timer.h index a67fd734c73b..697d6e69d61f 100644 --- a/include/linux/sunrpc/timer.h +++ b/include/linux/sunrpc/timer.h @@ -9,7 +9,7 @@ #ifndef _LINUX_SUNRPC_TIMER_H #define _LINUX_SUNRPC_TIMER_H -#include <asm/atomic.h> +#include <linux/atomic.h> struct rpc_rtt { unsigned long timeo; /* default timeout value */ diff --git a/include/linux/swap.h b/include/linux/swap.h index 91d5fcc83116..14d62490922e 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -9,7 +9,7 @@ #include <linux/sched.h> #include <linux/node.h> -#include <asm/atomic.h> +#include <linux/atomic.h> #include <asm/page.h> struct notifier_block; diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index e2696d76a599..d7d2f2158142 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h @@ -17,7 +17,7 @@ #include <linux/list.h> #include <linux/lockdep.h> #include <linux/kobject_ns.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct kobject; struct module; diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index bcd942fa611c..65efb92da996 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -6,7 +6,7 @@ #include <linux/mm.h> #include <linux/mmzone.h> #include <linux/vm_event_item.h> -#include <asm/atomic.h> +#include <linux/atomic.h> extern int sysctl_stat_interval; diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 2be2887c6958..0d556deb497b 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -10,7 +10,7 @@ #include <linux/bitops.h> #include <linux/lockdep.h> #include <linux/threads.h> -#include <asm/atomic.h> +#include <linux/atomic.h> struct workqueue_struct; |