From: Oliver Neukum <[email protected]> some atomic operations are only atomic, not ordered. Thus a CPU is allowed to reorder memory references to an object to before the reference is obtained. This fixes it. Signed-off-by: Oliver Neukum <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> --- lib/kref.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/lib/kref.c b/lib/kref.c index 0d07cc3..a6dc3ec 100644 --- a/lib/kref.c +++ b/lib/kref.c @@ -21,6 +21,7 @@ void kref_init(struct kref *kref) { atomic_set(&kref->refcount,1); + smp_mb(); } /** @@ -31,6 +32,7 @@ void kref_get(struct kref *kref) { WARN_ON(!atomic_read(&kref->refcount)); atomic_inc(&kref->refcount); + smp_mb__after_atomic_inc(); } /** -- 1.5.1.2 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- [PATCH 13/46] Driver core: notify userspace of network device renames
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 13/46] Driver core: notify userspace of network device renames
- References:
- [GIT PATCH] Driver core patches for 2.6.21
- From: Greg KH <[email protected]>
- [PATCH 01/46] driver core: fix device_add error path
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 02/46] driver core: fix namespace issue with devices assigned to classes
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 03/46] dev_printk and new-style class devices
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 05/46] driver core: Use attribute groups in struct device_type
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 06/46] Driver core: add name to device_type
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 07/46] kobject: kobject_shadow_add cleanup
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 08/46] driver core: per-subsystem multithreaded probing
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 09/46] powerpc: make it compile for multithread change
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 10/46] driver core: don't fail attaching the device if it cannot be bound
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 11/46] Driver core: remove unneeded completion from driver release path
- From: Greg Kroah-Hartman <[email protected]>
- [GIT PATCH] Driver core patches for 2.6.21
- Prev by Date: [PATCH 08/46] driver core: per-subsystem multithreaded probing
- Next by Date: Re: [00/17] Large Blocksize Support V3
- Previous by thread: [PATCH 11/46] Driver core: remove unneeded completion from driver release path
- Next by thread: [PATCH 13/46] Driver core: notify userspace of network device renames
- Index(es):